/*********************************************************************** * * Copyright (C) 2005-2006 Novell, Inc. All Rights Reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; version 2.1 * of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, Novell, Inc. * * To contact Novell about this file by physical or electronic mail, * you may find current contact information at www.novell.com. * ***********************************************************************/ using System; using AppModule.InterProcessComm; using AppModule.NamedPipes; namespace Novell.CASA.MiCasa.Communication { /// /// Summary description for WinIPCClientChannel. /// public class WinIPCClientChannel : ClientChannel { private static IInterProcessConnection clientConnection = null; private static string XTIER_RPC_PIPE = "SS_RPC_PIPE"; public WinIPCClientChannel() { } public void Open() { if (clientConnection == null) { clientConnection = new ClientPipeConnection(XTIER_RPC_PIPE, "."); clientConnection.Connect(); } } public int Read(byte[] buf) { buf = Read(); if (buf != null) return 0; else return -1; } public byte[] Read() { byte[] returnBuffer; try { returnBuffer = clientConnection.ReadBytes(); return returnBuffer; } catch (Exception e) { Console.WriteLine(e.ToString()); return null; } } public int Write(byte[] buf) { try { clientConnection.WriteBytes(buf); return 0; } catch (Exception e) { Console.WriteLine(e.ToString()); return -1; } } public void Close() { //clientConnection.Close(); //clientConnection.Dispose(); } } }