public void Stop()
 {
     DebugTrace.TraceEnter(this, "Stop");
     try
     {
         this.protocolProviderState = ProtocolProviderState.Stopping;
         this.state.Stop();
         this.protocolProviderState = ProtocolProviderState.Stopped;
         ProtocolStoppedRecord.TraceAndLog(this.protocolId, this.name);
     }
     catch (Exception exception)
     {
         DebugTrace.Trace(TraceLevel.Error, "Could not stop protocol: {0}", exception);
         ProtocolStopFailureRecord.TraceAndLog(this.protocolId, this.name, exception);
         throw;
     }
     finally
     {
         DebugTrace.TraceLeave(this, "Stop");
     }
 }
 public void Initialize(TransactionManager transactionManager)
 {
     DebugTrace.TraceEnter(this, "Initialize");
     try
     {
         this.state = new ProtocolState(transactionManager, this.protocolVersion);
         this.protocolProviderState = ProtocolProviderState.Initialized;
         if (ProtocolInitializedRecord.ShouldTrace)
         {
             ProtocolInitializedRecord.Trace(this.protocolId, this.name);
         }
     }
     catch (Exception exception)
     {
         DebugTrace.Trace(TraceLevel.Error, "Could not initialize protocol: {0}", exception);
         ProtocolInitializationFailureRecord.TraceAndLog(this.protocolId, this.name, exception);
         throw;
     }
     finally
     {
         DebugTrace.TraceLeave(this, "Initialize");
     }
 }
 public void Initialize(TransactionManager transactionManager)
 {
     DebugTrace.TraceEnter(this, "Initialize");
     try
     {
         this.state = new ProtocolState(transactionManager, this.protocolVersion);
         this.protocolProviderState = ProtocolProviderState.Initialized;
         if (ProtocolInitializedRecord.ShouldTrace)
         {
             ProtocolInitializedRecord.Trace(this.protocolId, this.name);
         }
     }
     catch (Exception exception)
     {
         DebugTrace.Trace(TraceLevel.Error, "Could not initialize protocol: {0}", exception);
         ProtocolInitializationFailureRecord.TraceAndLog(this.protocolId, this.name, exception);
         throw;
     }
     finally
     {
         DebugTrace.TraceLeave(this, "Initialize");
     }
 }
 public void Start()
 {
     DebugTrace.TraceEnter(this, "Start");
     try
     {
         this.protocolProviderState = ProtocolProviderState.Starting;
         this.state.Start();
         this.protocolProviderState = ProtocolProviderState.Started;
         if (ProtocolStartedRecord.ShouldTrace)
         {
             ProtocolStartedRecord.Trace(this.protocolId, this.name);
         }
     }
     catch (Exception exception)
     {
         DebugTrace.Trace(TraceLevel.Error, "Could not start protocol: {0}", exception);
         ProtocolStartFailureRecord.TraceAndLog(this.protocolId, this.name, exception);
         throw;
     }
     finally
     {
         DebugTrace.TraceLeave(this, "Start");
     }
 }