public ProtocolState(Microsoft.Transactions.Bridge.TransactionManager transactionManager, Microsoft.Transactions.Wsat.Protocol.ProtocolVersion protocolVersion) { this.protocolVersion = protocolVersion; this.tm = transactionManager; try { this.config = new Configuration(this); } catch (ConfigurationProviderException exception) { throw Microsoft.Transactions.Bridge.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new PluggableProtocolException(exception.Message, exception)); } this.lookupTables = new LookupTables(this); this.tmReceive = new Microsoft.Transactions.Wsat.InputOutput.TransactionManagerReceive(this); this.tmSend = new Microsoft.Transactions.Wsat.InputOutput.TransactionManagerSend(this); this.timerManager = new Microsoft.Transactions.Wsat.Protocol.TimerManager(this); this.recovering = true; this.serializer = new Microsoft.Transactions.Wsat.Recovery.LogEntrySerialization(this); this.allStates = new StateContainer(this); this.faults = Microsoft.Transactions.Wsat.Messaging.Faults.Version(protocolVersion); this.faultsender = new Microsoft.Transactions.Wsat.InputOutput.FaultSender(this); this.activationCoordinator = new Microsoft.Transactions.Wsat.InputOutput.ActivationCoordinator(this); this.registrationCoordinator = new Microsoft.Transactions.Wsat.InputOutput.RegistrationCoordinator(this); this.registrationParticipant = new Microsoft.Transactions.Wsat.InputOutput.RegistrationParticipant(this); this.completionCoordinator = new Microsoft.Transactions.Wsat.InputOutput.CompletionCoordinator(this); this.twoPhaseCommitCoordinator = new Microsoft.Transactions.Wsat.InputOutput.TwoPhaseCommitCoordinator(this); this.twoPhaseCommitParticipant = new Microsoft.Transactions.Wsat.InputOutput.TwoPhaseCommitParticipant(this); }