Example #1
0
 public TopicRoute(ITopicRule rule, WriterCollection <IMessageSerializer> writers, ITopicRouter router,
                   IMessagingRoot root, MessageTypeRouting messageTypeRouting)
 {
     _rule               = rule;
     _writers            = writers;
     _router             = router;
     _root               = root;
     _messageTypeRouting = messageTypeRouting;
 }
Example #2
0
 public GroBufWriter(long serializerId, IDataMembersExtractor dataMembersExtractor, IGroBufCustomSerializerCollection customSerializerCollection, GroBufOptions options, Func <Type, IGroBufCustomSerializer> factory, Func <Type, IGroBufCustomSerializer> baseFactory)
 {
     this.serializerId         = serializerId;
     this.dataMembersExtractor = dataMembersExtractor;
     this.Options          = options;
     sizeCounterCollection = new SizeCounterCollection(customSerializerCollection, factory, baseFactory);
     writerCollection      = new WriterCollection(customSerializerCollection, factory, baseFactory);
     assembly        = AssemblyBuilder.DefineDynamicAssembly(new AssemblyName(Guid.NewGuid().ToString()), AssemblyBuilderAccess.Run);
     module          = assembly.DefineDynamicModule(Guid.NewGuid().ToString());
     trackReferences = options.HasFlag(GroBufOptions.PackReferences);
 }
Example #3
0
        public StaticRoute(ISendingAgent agent,
                           WriterCollection <IMessageSerializer> writers, MessageTypeRouting routing)
        {
            _agent    = agent;
            _endpoint = agent.Endpoint;
            _writers  = writers;
            _routing  = routing;
            // TODO -- select the right serializer for the endpoint
            // hard-coding to JSON for now

            _writer = writers.ChooseWriter("application/json");
        }
Example #4
0
        public unsafe byte[] Serialize <T>(T obj)
        {
            var writer = WriterCollection.GetWriter(typeof(T));
            var res    = new byte[writer.GetSize(obj)];

            fixed(byte *b = &res[0])
            {
                int index = 0;

                writer.Write(obj, b, ref index);
            }

            return(res);
        }