104 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| /***********************************************************************
 | |
|  * 
 | |
|  *  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>
 | |
| 	/// Summary description for WinIPCClientChannel.
 | |
| 	/// </summary>
 | |
| 	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();
 | |
| 		}
 | |
| 
 | |
| 	}
 | |
| }
 |