コード例 #1
0
 void BuildPipeline(ReplyReceiveChannelSchema schema, ReceiveMessageCache messageCache)
 {
     MessagePipelineBuilder.Build()
         .With(messageReceiver)
         .ToProcessor(new BodyMessageFilter(schema.Address))
         .ToProcessor(new SenderAuthenticationSessionVerifier(authenticationSessionCache, authenticatedServerRegistry))
         .ToProcessor(new MessageRegisteredAddressReassigner(serverAddressRegistry))
         .ToProcessor(new SequenceOriginApplier(messageCache))
         .ToProcessor(new MessageSendTimeRemover())
         .ToProcessor(new ReceiveChannelMessageCacher(messageCache))
         .ToProcessor(new MessageAcknowledger(acknowledgementSender))
         .ToSimpleMessageRepeater(messageCache, systemTime, taskRepeater)
         .ToProcessor(new ReceiveChannelMessageCacher(messageCache))
         .Queue()
         .ToResequencerIfSequenced(messageCache, schema)
         .ToProcessorIf(new RequestReplyCorrelator(correlationLookup), schema.CorrelateReplyToRequest)
         .ToProcessor(new ExceptionHandler(schema.ContinueOnException))
         .ToConverter(new MessagePayloadUnpackager(serialiser))
         .ToProcessor(schema.UnitOfWorkRunnerCreator())
         .ToProcessor(new BatchUnpackager())
         .ToProcessorIf(new MainThreadMessageMashaller(mainThreadMarshaller), schema.HandleRepliesOnMainThread)
         .ToProcessor(new MessageHookRunner<object>(schema.Hooks))
         .ToEndPoint(messageHandlerRouter);
 }
コード例 #2
0
 public void Build(ReplyReceiveChannelSchema schema)
 {
     BuildPipeline(schema, CreateCache(schema));
     NotifyReplyReceiveChannelBuilt(schema);
 }
コード例 #3
0
 ReceiveMessageCache CreateCache(ReplyReceiveChannelSchema schema)
 {
     return messageCacheFactory.BuildReceiveCache(PersistenceUseType.ReplyReceive, schema.Address, schema);
 }
コード例 #4
0
 static void NotifyReplyReceiveChannelBuilt(ReplyReceiveChannelSchema schema)
 {
     Messenger.Send(new ReplyReceiveChannelBuilt
     {
         CacheAddress = schema.Address,
         ReceiverAddress = schema.ToAddress,
         SenderAddress = schema.Address
     });
 }