void CleanUp() { try { Disposing(); LogUtility.LogUtility.LogFile(Convert.ToString(m_Id) + " *****************************destroying all******************************", LogUtility.LogLevels.LEVEL_LOG_HIGH); m_NonProprietarySegmentRxBuf = null; m_ProprietarySementRxBuf = null; if (m_clientStream != null) { m_clientStream.Clear(); m_clientStream = null; } m_ProprietarySegmentTxMutex = null; m_ProprietarySegmentRxMutex = null; m_NonProprietarySegmentRxMutex = null; m_NonProprietarySegmentTxMutex = null; if (m_clientTxQueue != null) { m_clientTxQueue.Clear(); m_clientTxQueue = null; } if (m_destinationTxQueue != null) { m_destinationTxQueue.Clear(); m_destinationTxQueue = null; } m_txStateMachine = null; m_rxStateMachine = null; m_destinationSideSocket = null; m_clientSideSocket = null; LogUtility.LogUtility.LogFile("ID " + Convert.ToString(m_Id) + " m_TransmittedClient " + Convert.ToString(m_TransmittedClient) + " ReceivedClient " + Convert.ToString(m_ReceivedClient) + " TransmittedServer " + Convert.ToString(m_TransmittedServer) + " ReceivedServer " + Convert.ToString(m_ReceivedServer) + " TransmittedMsgsClient " + Convert.ToString(m_TransmittedMsgsClient) + " ReceivedMsgs " + Convert.ToString(m_ReceivedMsgs) + " SubmittedMsgsClient " + Convert.ToString(m_SubmittedMsgsClient) + " SubmittedMsgsServer " + Convert.ToString(m_SubmittedMsgsServer) + " SubmittedClient " + Convert.ToString(m_SubmittedClient) + " SubmittedServer " + Convert.ToString(m_SubmittedServer) + " Saved " + GetSaved() + " PreSaved " + GetPreSaved() + " PostSaved " + GetPostSaved(), LogUtility.LogLevels.LEVEL_LOG_HIGH); LogUtility.LogUtility.LogFile("ID " + Convert.ToString(m_Id) + " Timestampts: prop tx init " + GetHMSM(m_ProprietaryTxInitiatedTs) + " prop tx compl " + GetHMSM(m_ProprietaryTxCompletedTs) + " prop rx init " + GetHMSM(m_ProprietaryRxInitiatedTs) + " prop rx compl " + GetHMSM(m_ProprietaryRxCompletedTs) + " nonprop tx init " + GetHMSM(m_NonProprietaryTxInitiatedTs) + " nonprop tx compl " + GetHMSM(m_NonProprietaryTxCompletedTs) + " nonprop rx init " + GetHMSM(m_NonProprietaryRxInitiatedTs) + " nonprop rx compl " + GetHMSM(m_NonProprietaryRxCompletedTs), LogUtility.LogLevels.LEVEL_LOG_HIGH3); LogUtility.LogUtility.LogFile("ID " + Convert.ToString(m_Id) + " Flags: prop tx " + Convert.ToString(m_ProprietarySegmentTxInProgress) + " prop rx " + Convert.ToString(m_ProprietarySegmentRxInProgress) + " nonprop tx " + Convert.ToString(m_NonProprietarySegmentTxInProgress) + " nonprop rx " + Convert.ToString(m_NonProprietarySegmentRxInProgress), LogUtility.LogLevels.LEVEL_LOG_HIGH3); Disposed(); m_disposeMutex = null; } catch (Exception exc) { LogUtility.LogUtility.LogFile(Convert.ToString(m_Id) + " EXCEPTION " + exc.Message + " " + exc.StackTrace, LogUtility.LogLevels.LEVEL_LOG_HIGH); } }
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); }