Esempio n. 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;
            }
        }
Esempio n. 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;
            }
        }
Esempio n. 3
0
 public static Task <Frame> ReadFrameAsync(this IStompFrameReader reader)
 {
     return(reader.ReadFrameAsync(CancellationToken.None));
 }
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="reader">Frame reader to be wrapped.</param>
 public StompSerialFrameReader(IStompFrameReader reader)
 {
     _reader             = reader;
     _serialTaskExecuter = new SerialTaskExecuter <Frame>();
 }
Esempio n. 5
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="reader">Frame reader to be wrapped.</param>
 public StompSerialFrameReader(IStompFrameReader reader)
 {
     _reader = reader;
     _serialTaskExecuter = new SerialTaskExecuter<Frame>();
 }
Esempio n. 6
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="reader">Frame reader.</param>
 public StompFrameObservable(IStompFrameReader reader)
 {
     _observers = new ConcurrentDictionary <IObserver <Frame>, IObserver <Frame> >();
     _reader    = reader;
     _status    = 0;
 }
Esempio n. 7
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="reader">Frame reader.</param>
 public StompFrameObservable(IStompFrameReader reader)
 {
     _observers = new ConcurrentDictionary<IObserver<Frame>, IObserver<Frame>>();
     _reader = reader;
     _status = 0;
 }