public static async ValueTask <T> RoundTripAsync <T>(T message, IGenericBsonSerializer <T> serializer)
        {
            var pipe = new Pipe();

            await WriteAsync(pipe.Writer, message, serializer);

            return(await ReadAsync(pipe.Reader, serializer));
        }
Exemple #2
0
        //static SerializersMap()
        //{
        //    foreach (var pair in MongoDB.Client.Bson.Serialization.Generated.GlobalSerializationHelperGenerated.GetGeneratedSerializers())
        //    {
        //        _serializerMap.Add(pair.Key, pair.Value);
        //    }
        //}


        public static bool TryGetSerializer <T>([MaybeNullWhen(false)] out IGenericBsonSerializer <T> serializer)
        {
            if (_serializerMap.TryGetValue(typeof(T), out var ser) && ser is IGenericBsonSerializer <T> typedSer)
            {
                serializer = typedSer;
                return(true);
            }
            serializer = default;
            return(false);
        }
Exemple #3
0
 public MsgBodyReader(IGenericBsonSerializer <T> serializer, ResponseMsgMessage message)
 {
     Serializer   = serializer;
     Message      = message;
     CursorResult = new CursorResult <T>
     {
         MongoCursor = new MongoCursor <T>
         {
             Items = CursorItemsPool <T> .Pool.Get()
         }
     };
 }
        private static async ValueTask <T> ReadAsync <T>(PipeReader input, IGenericBsonSerializer <T> serializer)
        {
            var reader = new ProtocolReader(input);

            var messageReader = new ReplyBodyReader <T>(serializer, new ReplyMessage(default, new ReplyMessageHeader(default, default, default, 1)));
Exemple #5
0
 public MsgType0BodyReader(IGenericBsonSerializer <T> serializer, ResponseMsgMessage message)
     : base(serializer, message)
 {
     _payloadLength = message.Header.MessageLength;
     _state         = ParserState.Initial;
 }
 public ReplyBodyReader(IGenericBsonSerializer <T> serializer, ReplyMessage replyMessage)
 {
     _serializer   = serializer;
     _replyMessage = replyMessage;
     _result       = new QueryResult <T>(_replyMessage.ReplyHeader.CursorId);
 }
 public MsgType1BodyReader(IGenericBsonSerializer <T> serializer, ResponseMsgMessage message)
     : base(serializer, message)
 {
 }
 public ReplyBodyWriter(IGenericBsonSerializer <T> serializer)
 {
     _serializer = serializer;
 }