public override void Run()
{
string node_addr = _node_config.NodeAddress;
for(int i = 1; i < _count; i++) {
_node_config.NodeAddress = (Utils.GenerateAHAddress()).ToString();
ApplicationNode node = CreateNode(_node_config);
new Information(node.Node, "MultiNode", node.SecurityOverlord);
_nodes.Add(node);
Thread thread = new Thread(node.Node.Connect);
thread.Start();
_threads.Add(thread);
if(node.PrivateNode != null) {
ApplicationNode pnode = node.PrivateNode;
new Information(pnode.Node, "MultiPrivateNode", pnode.SecurityOverlord);
thread = new Thread(pnode.Node.Connect);
thread.Start();
_threads.Add(thread);
}
}
_node_config.NodeAddress = node_addr;
_app_node = CreateNode(_node_config);
new Information(_app_node.Node, "MultiNode", _app_node.SecurityOverlord);
_nodes.Add(_app_node);
Console.WriteLine("Starting at {0}, {1} is connecting to {2}.",
DateTime.UtcNow, _app_node.Node.Address, _app_node.Node.Realm);
if(_app_node.PrivateNode != null) {
ApplicationNode pnode = _app_node.PrivateNode;
new Information(pnode.Node, "MultiPrivateNode", pnode.SecurityOverlord);
Thread thread = new Thread(pnode.Node.Connect);
thread.Start();
_threads.Add(thread);
}
_app_node.Node.Connect();
}