Пример #1
0
        internal StompClient(
            IStompFrameReader reader, 
            IStompFrameWriter writer,
            TimeSpan? retryInterval = null,
            bool cascadeDispose = false,
            bool useRandomNumberGenerator = false)
        {
            if(reader.ProtocolVersion != writer.ProtocolVersion)
                throw new ArgumentException("Reader and writer MUST use the same protocol version.");

            _cascadeDispose = cascadeDispose;
            _reader = reader;
            _writer = writer;

            _frameObservable = new StompFrameObservable(reader);
            _frameWriter = new StompFrameWriterWithConfirmation(writer, _frameObservable, retryInterval);

            if (!useRandomNumberGenerator)
            {
                _receiptNumberGenerator = new SequenceNumberGenerator();
                _subscriptionNumberGenerator = new SequenceNumberGenerator();
                _transactionNumberGenerator = new SequenceNumberGenerator();
            }
            else
            {
                _receiptNumberGenerator = new RandomSequenceNumberGenerator();
                _subscriptionNumberGenerator = _receiptNumberGenerator;
                _transactionNumberGenerator = _receiptNumberGenerator;
            }
        }
Пример #2
0
        internal StompClient(
            IStompFrameReader reader,
            IStompFrameWriter writer,
            TimeSpan?retryInterval        = null,
            bool cascadeDispose           = false,
            bool useRandomNumberGenerator = false)
        {
            if (reader.ProtocolVersion != writer.ProtocolVersion)
            {
                throw new ArgumentException("Reader and writer MUST use the same protocol version.");
            }

            _cascadeDispose = cascadeDispose;
            _reader         = reader;
            _writer         = writer;

            _frameObservable = new StompFrameObservable(reader);
            _frameWriter     = new StompFrameWriterWithConfirmation(writer, _frameObservable, retryInterval);

            if (!useRandomNumberGenerator)
            {
                _receiptNumberGenerator      = new SequenceNumberGenerator();
                _subscriptionNumberGenerator = new SequenceNumberGenerator();
                _transactionNumberGenerator  = new SequenceNumberGenerator();
            }
            else
            {
                _receiptNumberGenerator      = new RandomSequenceNumberGenerator();
                _subscriptionNumberGenerator = _receiptNumberGenerator;
                _transactionNumberGenerator  = _receiptNumberGenerator;
            }
        }
Пример #3
0
 public BaseStompClient(string address)
 {
     this.transport = (ITransport) new WebTransportTransport(address);
       this.outTimer = new Timer();
       this.inTimer = new Timer();
       this.transport.outHeartbeatTimer = this.outTimer;
       this.transport.inHeartbeatTimer = this.inTimer;
       this._messageConsumers = (IDictionary<string, Action<StompMessage>>) new Dictionary<string, Action<StompMessage>>()
       {
     {
       "MESSAGE",
       (Action<StompMessage>) (msg =>
       {
     if (this.OnMessage == null)
       return;
     this.OnMessage(msg);
       })
     },
     {
       "RECEIPT",
       (Action<StompMessage>) (msg =>
       {
     if (msg["receipt-id"].Equals("rcpt-dis"))
     {
       this.transport.Close();
       this.IsConnected = false;
       if (this.OnDisconnect == null)
         return;
       this.OnDisconnect();
     }
     else
     {
       if (this.OnReceipt == null)
         return;
       this.OnReceipt(msg);
     }
       })
     },
     {
       "ERROR",
       (Action<StompMessage>) (msg =>
       {
     if (this.OnError == null)
       return;
     this.OnError(msg);
       })
     },
     {
       "CONNECTED",
       new Action<StompMessage>(this.OnStompConnected)
     }
       };
       this._receiptNumberGenerator = (ISequenceNumberGenerator) new SequenceNumberGenerator();
       this._subscriptionNumberGenerator = (ISequenceNumberGenerator) new SequenceNumberGenerator();
       this._transactionNumberGenerator = (ISequenceNumberGenerator) new SequenceNumberGenerator();
 }
Пример #4
0
 public BookingRequestCommandHandler(
     IAdvancedContentRepository domainRepository,
     ISequenceNumberGenerator sequenceNumberGenerator,
     ITemplateProvider templateProvider,
     ITenantCategoryProvider tenantCategoryProvider,
     IMailDispatchService mailDispatchService,
     ICommandExecutor commandExecutor,
     BookingSettings bookingSettings,
     ICurrentUserProvider currentUserProvider)
 {
     DomainRepository        = domainRepository;
     SequenceNumberGenerator = sequenceNumberGenerator;
     TemplateProvider        = templateProvider;
     TenantCategoryProvider  = tenantCategoryProvider;
     MailDispatchService     = mailDispatchService;
     CommandExecutor         = commandExecutor;
     BookingSettings         = bookingSettings;
     CurrentUserProvider     = currentUserProvider;
 }
Пример #5
0
 public BenchmarkExecutionFactory(ISequenceNumberGenerator sequenceNumberGenerator)
 {
     vSequenceNumberGenerator = sequenceNumberGenerator;
 }