public MyAppNode(NodeInfo identity, MyAppNodeConfiguration config) : base(identity, config) { var factory = new MyAppDataFactory(config.LoggerDelegate); _appRepo = new MyAppDataRepo(factory.CreateMyAppData); _appHandler = new ApplicationHandler(this); MessageBus.Subscribe(_appHandler); MessageBus.Subscribe(_appRepo); }
void Run(string[] args) { using (var janitor = new DisposableStack()) { var logger = janitor.Push(new FileLogger()); var hostEntry = _dnsProvider.GetHostEntry("localhost"); var config = new MyAppNodeConfiguration { HashingService = _hashingService, Serializer = _msgSerializer, NodeSocketFactory = _nodeSocketFactory, Clock = _clock, CorrelationFactory = _correlationFactory, SuccessorCount = 2, SeedNode = $"{hostEntry.HostName}:{SeedPort}", LoggerDelegate = logger.WriteLine, ExpiryCalculator = _expiryCalculator, Random = _random, ActionTimerFactory = _actionTimerFactory, MarshallerFactory = _marshallerFactory, CommunicationManagerFactory = _communicationManagerFactory, }; var factory = new MyAppNodeFactory(config); var hostAndPort0 = $"{hostEntry.HostName}:{SeedPort}"; var id0 = Node.CreateIdentifier(hostAndPort0); var nodes = new List <Node>(); nodes.Add(janitor.Push(factory.CreateNode(id0, hostAndPort0))); for (int i = 9001; i < 9003; ++i) { var hostAndPort = $"{hostEntry.HostName}:{i}"; var id = Node.CreateIdentifier(hostAndPort); nodes.Add(janitor.Push(factory.CreateNode(id, hostAndPort))); Thread.Sleep(1500); } Thread.Sleep(1000); Console.WriteLine("***** Connectivity Summary *****"); Console.ReadKey(); foreach (var node in nodes) { Console.WriteLine($"{node.Identity}\tS: {node.Successor}\tP: {node.Predecessor}"); } Console.ReadKey(); //var terminate = new TerminateNode(node0.Identity.RoutingHash); //node0.Publish(terminate); //terminate = new TerminateNode(node1.Identity.RoutingHash); //node1.Publish(terminate); //terminate = new TerminateNode(node2.Identity.RoutingHash); //node2.Publish(terminate); } Console.ReadKey(); }
public MyAppNodeFactory(MyAppNodeConfiguration config) { _hashingService = config.HashingService; _config = config; }