public ICoordinationListener Add(ITwoPhaseCommitParticipant serviceInstance) { DebugTrace.TraceEnter("CoordinationService.Add (ITwoPhaseCommitParticipant)"); this.AssertProtocolServiceMode(); IWSTwoPhaseCommitParticipant dispatcher = TwoPhaseCommitParticipantDispatcher.Instance(this, serviceInstance); ICoordinationListener listener = this.CreateService(dispatcher, dispatcher.ContractType, BindingStrings.TwoPhaseCommitParticipantSuffix(this.protocolVersion)); DebugTrace.TraceLeave("CoordinationService.Add (ITwoPhaseCommitParticipant)"); return(listener); }
public static IWSTwoPhaseCommitParticipant Instance(CoordinationService service, ITwoPhaseCommitParticipant dispatch) { ProtocolVersionHelper.AssertProtocolVersion(service.ProtocolVersion, typeof(TwoPhaseCommitParticipantDispatcher), "V"); switch (service.ProtocolVersion) { case ProtocolVersion.Version10: return new TwoPhaseCommitParticipantDispatcher10(service, dispatch); case ProtocolVersion.Version11: return new TwoPhaseCommitParticipantDispatcher11(service, dispatch); } return null; }
public TwoPhaseCommitParticipantDispatcher11(CoordinationService service, ITwoPhaseCommitParticipant dispatch) { ProtocolVersionHelper.AssertProtocolVersion11(service.ProtocolVersion, typeof(TwoPhaseCommitParticipantDispatcher11), "constr"); this.twoPhaseCommitParticipantDispatcher = new TwoPhaseCommitParticipantDispatcher(service, dispatch); }
public TwoPhaseCommitParticipantDispatcher(CoordinationService service, ITwoPhaseCommitParticipant dispatch) : base(service.ProtocolVersion) { this.service = service; this.dispatch = dispatch; this.protocolVersion = service.ProtocolVersion; }
public static IWSTwoPhaseCommitParticipant Instance(CoordinationService service, ITwoPhaseCommitParticipant dispatch) { ProtocolVersionHelper.AssertProtocolVersion(service.ProtocolVersion, typeof(TwoPhaseCommitParticipantDispatcher), "V"); switch (service.ProtocolVersion) { case ProtocolVersion.Version10: return(new TwoPhaseCommitParticipantDispatcher10(service, dispatch)); case ProtocolVersion.Version11: return(new TwoPhaseCommitParticipantDispatcher11(service, dispatch)); } return(null); }