コード例 #1
0
 public FeedSubscriberGrain(
     [PersistentState("translationGrainState", STORAGE_NAME)] IPersistentState <FeedSubscriberGrainState> state,
     IFeedSubscriber <TranslationState> feedSubscriber
     )
 {
     this.state          = state;
     this.feedSubscriber = feedSubscriber;
 }
コード例 #2
0
 public FeedListener(
     FeedListenerFlow feedListenerFlow,
     IWebSocketClient webSocketClient,
     IFeedManager feedManager,
     IFeedSubscriber <TranslationState> feedSubscriber,
     IOptions <FeedListenerOptions> options
     )
 {
     this.feedListenerFlow = feedListenerFlow;
     this.webSocketClient  = webSocketClient;
     this.feedManager      = feedManager;
     this.feedSubscriber   = feedSubscriber;
     this.options          = options.Value;
 }
コード例 #3
0
        public FeedListenerFlow(
            ILogger <FeedListenerFlow> logger,
            IMessageDumper messageDumper,
            IWebSocketMessageParser webSocketMessageParser,
            IProviderAdapter providerAdapter,
            IFeedSubscriber <TranslationState> feedSubscriber,
            TranslationSubscriptionCollection subscriptions
            )
        {
            this.logger                 = logger;
            this.messageDumper          = messageDumper;
            this.webSocketMessageParser = webSocketMessageParser;
            this.providerAdapter        = providerAdapter;
            this.feedSubscriber         = feedSubscriber;
            this.subscriptions          = subscriptions;

            // 1
            parseFeedMessageTransformManyBlock
                = new TransformManyBlock <MessageContext <string>, MessageContext <object, string> >(ParseFeedMessageHandler);

            // 2
            messageRouterBlock
                = new ActionBlock <MessageContext <object, string> >(MessageRouterHandler);

            // 3-1
            startSubscribingActionBlock
                = new ActionBlock <MessageContext <LoginResponseMessage> >(StartSubscribingHandler);

            // 3-2
            translationToAdapterActionBlock
                = new ActionBlock <MessageContext <Translation> >(TranslationToAdapterHandler);

            // 3-3
            eventsDataToAdapterActionBlock
                = new ActionBlock <MessageContext <EventsMessage> >(EventsDataToAdapterHandler);

            // 3-4
            pingToAdapterActionBlock
                = new ActionBlock <MessageContext <PingMessage> >(PingToAdapterHandler);

            // Building flow
            parseFeedMessageTransformManyBlock.LinkTo(messageRouterBlock);
        }