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;
 }
예제 #5
0
        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);
        }
예제 #6
0
 public TwoPhaseCommitParticipantDispatcher(CoordinationService service, ITwoPhaseCommitParticipant dispatch) : base(service.ProtocolVersion)
 {
     this.service         = service;
     this.dispatch        = dispatch;
     this.protocolVersion = service.ProtocolVersion;
 }
 public TwoPhaseCommitParticipantDispatcher11(CoordinationService service, ITwoPhaseCommitParticipant dispatch)
 {
     ProtocolVersionHelper.AssertProtocolVersion11(service.ProtocolVersion, typeof(TwoPhaseCommitParticipantDispatcher11), "constr");
     this.twoPhaseCommitParticipantDispatcher = new TwoPhaseCommitParticipantDispatcher(service, dispatch);
 }