static void NewStorageNodes(RuntimeHost runtimeHost, DistributedStorageContext ctx, MessageCollection messages)
        {
            var configure    = new ConfigureStorageNode(messages, ctx.SafetyMonitor);
            var storageNodes = new List <IStorageNodeSender>();

            for (var i = 0; i < 3; i++)
            {
                var storageNode = runtimeHost.New(MachineInterface.Sender <IStorageNodeSender>().Bundler <IStorageNodeBundler>().Receiver <StorageNodeReceiver>());
                storageNode.Configure(configure);
                storageNode.Handshake(new HandshakeStorageNode(ctx.Server));
                storageNodes.Add(storageNode);
            }
            ctx.SafetyMonitor.Handshake(new HandshakeSafetyMonitor(storageNodes.ToArray()));
            ctx.StorageNodes = storageNodes.ToArray();
        }
示例#2
0
 public void Configure(ConfigureStorageNode e)
 {
     RuntimeHost.SendEvent(Id, e);
 }
示例#3
0
 public void HandleConfigure(ConfigureStorageNode e)
 {
     Receiver.HandleConfigure(e);
     MachineHandledLog(nameof(HandleConfigure));
 }
示例#4
0
 public virtual void HandleConfigure(ConfigureStorageNode e)
 {
     m_messages      = e.Messages;
     m_safetyMonitor = e.SafetyMonitor;
     Self.Established();
 }