public Proxy() { #if false m_clientTxQueue = new Queue(); m_destinationTxQueue = new Queue(); #else m_clientTxQueue = new LinkedList <byte[]>(); m_destinationTxQueue = new LinkedList <byte[]>(); m_clientTxQueueMutex = new object(); m_destinationTxQueueMutex = new object(); #endif //ProprietarySegmentTxMutex = new Mutex(); //NonProprietarySegmentTxMutex = new Mutex(); //ProprietarySegmentRxMutex = new Mutex(); //NonProprietarySegmentRxMutex = new Mutex(); m_ProprietarySegmentTxMutex = new object(); m_NonProprietarySegmentTxMutex = new object(); m_ProprietarySegmentRxMutex = new object(); m_NonProprietarySegmentRxMutex = new object(); m_clientStreamMutex = new object(); m_destinationStreamMutex = new object(); m_disposeMutex = new object(); m_ProprietarySegmentTxInProgress = false; m_ProprietarySegmentRxInProgress = false; m_NonProprietarySegmentTxInProgress = false; m_NonProprietarySegmentRxInProgress = false; m_IsMsgBeingTransmitted2Client = false; m_IsMsgBeingTransmitted2Destination = false; m_NonProprietarySegmentRxBuf = new byte[8192 * 4]; m_ProprietarySementRxBuf = new byte[8192 * 4]; m_rxStateMachine = new RxStateMachine(m_Id); m_txStateMachine = new TxStateMachine(m_Id); m_OnNonProprietaryReceivedCbk = new SocketAsyncEventArgs(); m_OnNonProprietaryTransmittedCbk = new SocketAsyncEventArgs(); m_OnProprietaryReceivedCbk = new SocketAsyncEventArgs(); m_OnProprietaryTransmittedCbk = new SocketAsyncEventArgs(); m_OnNonProprietaryReceivedCbk.Completed += new EventHandler <SocketAsyncEventArgs>(OnNonProprietarySegmentReceived); m_OnNonProprietaryTransmittedCbk.Completed += new EventHandler <SocketAsyncEventArgs>(OnNonProprietarySegmentTransmitted); m_OnProprietaryReceivedCbk.Completed += new EventHandler <SocketAsyncEventArgs>(OnProprietarySegmentReceived); m_OnProprietaryTransmittedCbk.Completed += new EventHandler <SocketAsyncEventArgs>(OnProprietarySegmentTransmitted); m_ShutDownFlag = false; m_TransmittedClient = 0; m_ReceivedClient = 0; m_TransmittedServer = 0; m_ReceivedServer = 0; m_TransmittedMsgsClient = 0; m_ReceivedMsgs = 0; m_SubmittedMsgsClient = 0; m_SubmittedMsgsServer = 0; m_SubmittedClient = 0; m_SubmittedServer = 0; m_Saved = 0; m_clientStream = new MyMemoryStream.MyMemoryStream(); m_destinationStream = new MyMemoryStream.MyMemoryStream(); m_onGotResults = null; m_onDisposed = null; m_clientSideDiscAsyncArgs = new SocketAsyncEventArgs(); m_clientSideDiscAsyncArgs.Completed += new EventHandler <SocketAsyncEventArgs>(OnClientDisconnected); m_ServerSideDiscAsyncArgs = new SocketAsyncEventArgs(); m_ServerSideDiscAsyncArgs.Completed += new EventHandler <SocketAsyncEventArgs>(OnDestinationDisconnected); m_InfiniteWaitTs = new TimeSpan(0, 0, 0, 0, -1); m_ImmediateReturnTs = new TimeSpan(0, 0, 0, 0, 0); m_ProprietaryRxInitiatedTs = new DateTime(); m_ProprietaryRxCompletedTs = new DateTime(); m_ProprietaryTxInitiatedTs = new DateTime(); m_ProprietaryTxCompletedTs = new DateTime(); m_NonProprietaryRxInitiatedTs = new DateTime(); m_NonProprietaryRxCompletedTs = new DateTime(); m_NonProprietaryTxInitiatedTs = new DateTime(); m_NonProprietaryTxCompletedTs = new DateTime(); LogUtility.LogUtility.LogFile("Started at " + DateTime.Now.ToLongTimeString(), LogUtility.LogLevels.LEVEL_LOG_HIGH); }
virtual public void SetOnGotResults(OnGotResults cbk) { m_onGotResults = cbk; }