Example #1
0
        static void Main(string[] args)
        {
            Logger.Instance.Verbose = true;
            Dictionary <ArgumentKey, object> arguments;

            Logger.Instance.Info("Starting Routing Daemon...");

            try
            {
                // Load arguments
                arguments = ArgumentsParser.GetArguments(args);
            }
            catch
            {
                Logger.Instance.Error("Invalid arguments");
                return;
            }

            // Set the local node ID.
            DaemonBackEnd.Instance.LocalNode.NodeID = (int)arguments[ArgumentKey.NodeID];

            List <NodeConfiguration> config;

            try
            {
                // Load configuration file.
                config = ConfigFileParser.LoadConfigurationFromPath((string)arguments[ArgumentKey.ConfigFilePath]);
            }
            catch
            {
                return;
            }

            Logger.Instance.Debug("Loaded configuration file");

            // Configure all the neighbors of the local node
            DaemonBackEnd.Instance.ConfigureLocalNode(config);

            RoutingDaemon1 daemon = new RoutingDaemon1(
                DaemonBackEnd.Instance.LocalNode.Configuration.RoutingPort,
                DaemonBackEnd.Instance.LocalNode.Configuration.LocalPort
                );

            // Start the daemon
            daemon.Start();
            Logger.Instance.Info("Daemon Started Successfully");

            // Infinite Loop till the application exits.
            while (true)
            {
                System.Threading.Thread.Sleep(100000);
            }
        }