public FeedSubscriberGrain( [PersistentState("translationGrainState", STORAGE_NAME)] IPersistentState <FeedSubscriberGrainState> state, IFeedSubscriber <TranslationState> feedSubscriber ) { this.state = state; this.feedSubscriber = feedSubscriber; }
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; }
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); }