Ejemplo n.º 1
0
        public static async Task <QbservableProtocol> NegotiateServerAsync(NetworkStream stream, IRemotingFormatter formatter, QbservableServiceOptions serviceOptions, CancellationToken cancel)
        {
            // TODO: Enable protocol registration and implement actual protocol negotiation

            var protocol = new DefaultQbservableProtocol(stream, formatter, serviceOptions, cancel);

            var buffer = new byte[4];

            await protocol.ReceiveAsync(buffer, 0, 4).ConfigureAwait(false);

            await protocol.SendAsync(buffer, 0, 4).ConfigureAwait(false);

            return(protocol);
        }
Ejemplo n.º 2
0
        public static async Task <QbservableProtocol> NegotiateClientAsync(NetworkStream stream, IRemotingFormatter formatter, CancellationToken cancel)
        {
            // TODO: Enable protocol registration and implement actual protocol negotiation

            var protocol = new DefaultQbservableProtocol(stream, formatter, cancel);

            const int ping = 123;

            var buffer = BitConverter.GetBytes(ping);

            await protocol.SendAsync(buffer, 0, 4).ConfigureAwait(false);

            await protocol.ReceiveAsync(buffer, 0, 4).ConfigureAwait(false);

            Contract.Assume(BitConverter.ToInt32(buffer, 0) == ping);

            return(protocol);
        }
Ejemplo n.º 3
0
 public static DuplexQbservableMessage CreateEnumeratorError(DuplexCallbackId id, Exception error, DefaultQbservableProtocol protocol)
 {
     return(new DuplexQbservableMessage(QbservableProtocolMessageKind.DuplexEnumeratorErrorResponse, id, error, Serialize(id, error, protocol)));
 }
Ejemplo n.º 4
0
        public static DuplexQbservableMessage CreateEnumeratorResponse(DuplexCallbackId id, bool result, object current, DefaultQbservableProtocol protocol)
        {
            var value = Tuple.Create(result, current);

            return(new DuplexQbservableMessage(QbservableProtocolMessageKind.DuplexEnumeratorResponse, id, value, Serialize(id, value, protocol)));
        }
Ejemplo n.º 5
0
 public static DuplexQbservableMessage CreateGetEnumeratorResponse(DuplexCallbackId id, int clientEnumeratorId, DefaultQbservableProtocol protocol)
 {
     return(new DuplexQbservableMessage(QbservableProtocolMessageKind.DuplexGetEnumeratorResponse, id, clientEnumeratorId, Serialize(id, clientEnumeratorId, protocol)));
 }
Ejemplo n.º 6
0
 public static DuplexQbservableMessage CreateGetEnumerator(DuplexCallbackId id, DefaultQbservableProtocol protocol)
 {
     return(CreateWithoutValue(QbservableProtocolMessageKind.DuplexGetEnumerator, id, protocol));
 }
Ejemplo n.º 7
0
 public DefaultServerDuplexQbservableProtocolSink(DefaultQbservableProtocol protocol)
 {
     this.protocol = protocol;
 }
Ejemplo n.º 8
0
 public DefaultClientDuplexQbservableProtocolSink(DefaultQbservableProtocol protocol)
 {
     this.protocol = protocol;
 }