CASA/c_micasad/communication/win/NamedPipes/PipeHandle.cs

63 lines
1.9 KiB
C#
Raw Normal View History

//////////////////////////////////////////////////
// Created by Ivan Latunov - IvanWeb.com //
//----------------------------------------------//
// This program is free software. You can //
// redistribute it and/or modify it as you wish //
//////////////////////////////////////////////////
using System;
using sscs.communication.win.InterProcessComm;
namespace sscs.communication.win.NamedPipes {
#region Comments
/// <summary>
/// Holds the operating system native handle and the current state of the pipe connection.
/// </summary>
#endregion
public sealed class PipeHandle {
#region Comments
/// <summary>
/// The operating system native handle.
/// </summary>
#endregion
public IntPtr Handle;
#region Comments
/// <summary>
/// The current state of the pipe connection.
/// </summary>
#endregion
public InterProcessConnectionState State;
#region Comments
/// <summary>
/// Creates a PipeHandle instance using the passed native handle.
/// </summary>
/// <param name="hnd">The native handle.</param>
#endregion
public PipeHandle (int hnd) {
this.Handle = new IntPtr(hnd);
this.State = InterProcessConnectionState.NotSet;
}
#region Comments
/// <summary>
/// Creates a PipeHandle instance using the provided native handle and state.
/// </summary>
/// <param name="hnd">The native handle.</param>
/// <param name="state">The state of the pipe connection.</param>
#endregion
public PipeHandle (int hnd, InterProcessConnectionState state) {
this.Handle = new IntPtr(hnd);
this.State = state;
}
#region Comments
/// <summary>
/// Creates a PipeHandle instance with an invalid native handle.
/// </summary>
#endregion
public PipeHandle () {
this.Handle = new IntPtr(NamedPipeNative.INVALID_HANDLE_VALUE);
this.State = InterProcessConnectionState.NotSet;
}
}
}