protected override void ConfigureIoc() { var actorSystemFactory = new ShardedActorSystemFactory(AkkaHostingPort, ActorSystemName, PersistenceSectionName, AkkaSeedNodes); var actorSystem = actorSystemFactory.GetActorSystem(); var subscriptionManager = new ShardedSubscriptionManager(actorSystem); var eventPublisher = new DistributedPubSubEventPublisher(actorSystem); var loggingEventPublisher = new LoggingEventPublisherDecorator(eventPublisher); var atomDocumentFactory = new ShardedAtomDocumentFactory(actorSystem); var atomFeedFactory = new ShardedAtomFeedFactory(actorSystem, atomDocumentFactory, new ConfigurableAtomDocumentSettings(EntriesPerDocument)); var settings = new AtomNotificationSettings(atomFeedFactory); var atomRetriever = new AtomDocumentRetriever(atomFeedFactory, atomDocumentFactory); var loggingAtomRetriever = new LoggingAtomDocumentRetrieverDecorator(atomRetriever); IocContainer.Register <ISubscriptionManager>(subscriptionManager); IocContainer.Register <IEventPublisher>(loggingEventPublisher); IocContainer.Register <ShardedAtomDocumentFactory>(atomDocumentFactory); IocContainer.Register <ShardedAtomFeedFactory>(atomFeedFactory); IocContainer.Register <IAtomDocumentRetriever>(loggingAtomRetriever); IocContainer.RegisterMultiple <IOwinConfiguration, WebApiOwinConfiguration>(IocLifecycle.PerRequest); }
private void Create(int port, string actorSystemName, string seedNode) { var factory = new ShardedActorSystemFactory(port, actorSystemName, "inmem", seedNode); var actorSystem = factory.GetActorSystem(); actorSystem.ActorOf(Props.Create<ClusterEventListener>()); var atomDocumentFactory = new ShardedAtomDocumentFactory(actorSystem); var actorFactory = new ShardedAtomFeedFactory(actorSystem, atomDocumentFactory, new ConfigurableAtomDocumentSettings(10)); atomNotifiers.Add(new AtomEventNotifier(actorFactory)); atomDocumentRetrievers.Add(new AtomDocumentRetriever(actorFactory, atomDocumentFactory)); numberOfNodes++; }
private void Create(int port, string actorSystemName, string seedNode) { var factory = new ShardedActorSystemFactory(port, actorSystemName, "inmem", seedNode); var actorSystem = factory.GetActorSystem(); actorSystem.ActorOf(Props.Create <ClusterEventListener>()); var atomDocumentFactory = new ShardedAtomDocumentFactory(actorSystem); var actorFactory = new ShardedAtomFeedFactory(actorSystem, atomDocumentFactory, new ConfigurableAtomDocumentSettings(10)); atomNotifiers.Add(new AtomEventNotifier(actorFactory)); atomDocumentRetrievers.Add(new AtomDocumentRetriever(actorFactory, atomDocumentFactory)); numberOfNodes++; }
public static void SetupActorSystem() { var actorSystem = factory.GetActorSystem(); ShardedAtomDocumentFactory atomDocumentFactory = new ShardedAtomDocumentFactory(actorSystem); ShardedAtomFeedFactory actorFactory = new ShardedAtomFeedFactory(actorSystem, atomDocumentFactory, new ConfigurableAtomDocumentSettings(10)); _notifier = new AtomEventNotifier(actorFactory); _retriever = new AtomDocumentRetriever(actorFactory, atomDocumentFactory); subscriptionMessage = new SubscriptionMessage( new AtomNotificationChannel(), new SubscriptionId(Guid.NewGuid().ToString()), new AllEventMatcher()); _notifier.Create(subscriptionMessage); }
public AtomDocumentRetriever(ShardedAtomFeedFactory factory, ShardedAtomDocumentFactory builder) { shardedAtomDocumentFactory = builder; this.factory = factory; atomDocumentSerialiser = new AtomDocumentSerialiser(); }
public AtomNotificationSettings(ShardedAtomFeedFactory atomFeedFactory) { AtomEventNotifier notifier = new AtomEventNotifier(atomFeedFactory); base.AddNotifierType(typeof(AtomNotificationChannel), notifier); }
public void Configure(ActorSystem actorSystem) { var atomDocumentFactory = new ShardedAtomDocumentFactory(actorSystem); var atomFeedFactory = new ShardedAtomFeedFactory(actorSystem, atomDocumentFactory, documentSettings); var settings = new AtomNotificationSettings(atomFeedFactory); }
public AtomEventNotifier(ShardedAtomFeedFactory factory) { this.factory = factory; }