コード例 #1
0
 void BuildPipeline(SubscriberRecieveChannelSchema schema, ReceiveMessageCache messageCache)
 {
     MessagePipelineBuilder.Build()
         .With(messageReceiver)
         .ToProcessor(new BodyMessageFilter(schema.Address))
         .ToProcessorIf(new NullMessageProcessor(), schema.BlockMessages)
         .ToProcessor(new SenderAuthenticationSessionVerifier(authenticationSessionCache, authenticatedServerRegistry))
         .ToProcessor(new MessageRegisteredAddressReassigner(serverAddressRegistry))
         .ToProcessor(new MessageSendTimeRemover())
         .ToProcessor(new SequenceOriginApplier(messageCache))
         .ToProcessor(new ReceiveChannelMessageCacher(messageCache))
         .ToProcessor(new MessageAcknowledger(acknowledgementSender))
         .ToSimpleMessageRepeater(messageCache, systemTime, taskRepeater)
         .ToProcessor(new ReceiveChannelMessageCacher(messageCache))
         .Queue()
         .ToResequencerIfSequenced(messageCache, schema)
         .ToProcessor(new ExceptionHandler(schema.ContinueOnException))
         .ToProcessor(new MessageHookRunner<MessagePayload>(schema.PreUnpackagingHooks))
         .ToConverter(new MessagePayloadUnpackager(serialiser))
         .ToProcessor(new MessageFilter(schema.FilterStrategy))
         .ToProcessorIf(new MainThreadMessageMashaller(mainThreadMarshaller), schema.HandleEventsOnMainThread)
         .ToProcessor(schema.UnitOfWorkRunnerCreator())
         .ToProcessor(new MessageHookRunner<object>(schema.Hooks))
         .ToEndPoint(messageHandlerRouter);
 }
コード例 #2
0
 public void Build(SubscriberRecieveChannelSchema schema)
 {
     BuildPipeline(schema, CreateCache(schema));
     NotifySubscriberReceiveChannelBuilt(schema);
 }
コード例 #3
0
 ReceiveMessageCache CreateCache(SubscriberRecieveChannelSchema schema)
 {
     return messageCacheFactory.BuildReceiveCache(PersistenceUseType.SubscriberReceive, schema.Address, schema);
 }
コード例 #4
0
 static void NotifySubscriberReceiveChannelBuilt(SubscriberRecieveChannelSchema schema)
 {
     Messenger.Send(new SubscriberReceiveChannelBuilt
     {
         CacheAddress = schema.Address,
         SubscriberAddress = schema.Address,
         PublisherAddress = schema.ToAddress
     });
 }