コード例 #1
0
        public void StartMetaDataAdapter()
        {
            try
            {
                Console.WriteLine("Starting MetaDataAdapter..........!");

                MetadataAdapter metadataAdapter = new MetadataAdapter();

                MetadataProviderServer serverMeta = new MetadataProviderServer();

                serverMeta.Adapter = metadataAdapter;

                string lsServerIP = ConfigurationManager.AppSettings.Get("LsServerIP");

                int lsPort = Convert.ToInt32(ConfigurationManager.AppSettings.Get("LsPort"));

                TcpClient reqrepSocket = new TcpClient(lsServerIP, lsPort);

                serverMeta.RequestStream = reqrepSocket.GetStream();

                serverMeta.ReplyStream = reqrepSocket.GetStream();

                serverMeta.Start();


                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("Remote Meta Adapter connected to Lightstreamer Server on  : {0}.", lsServerIP);
                Console.ForegroundColor = ConsoleColor.White;

                // log to file here
            }
            catch (Exception exp)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Remote Meta Adapter failed to establish connectin with Lightstreamer Server on IP : {0} and Port {1}.", lsServerIP, lsPort);
                Console.Write("Error : {0}", exp.Message);
                Console.ForegroundColor = ConsoleColor.White;

                // log to file should be added here.
            }
        }
        public static void Main(string[] args)
        {
            var config = new NLog.Config.LoggingConfiguration();

            var logfile = new NLog.Targets.FileTarget("logfile")
            {
                FileName = "TestAdapter.log"
            };
            var logconsole = new NLog.Targets.ConsoleTarget("logconsole");

            config.AddRule(LogLevel.Debug, LogLevel.Fatal, logconsole);
            config.AddRule(LogLevel.Info, LogLevel.Fatal, logfile);

            NLog.LogManager.Configuration = config;

            if (args.Length == 0)
            {
                Help();
            }

            _log.Info("Lightstreamer PortfolioDemo .NET Adapter Custom Server starting...");

            Server.SetLoggerProvider(new Log4NetLoggerProviderWrapper());

            IDictionary parameters = new Hashtable();
            string      host       = null;
            int         rrPortMD   = -1;
            int         rrPortD    = -1;
            int         notifPortD = -1;
            string      name       = null;

            for (int i = 0; i < args.Length; i++)
            {
                string arg = args[i];

                if (arg.StartsWith(PREFIX1) || arg.StartsWith(PREFIX2))
                {
                    arg = arg.Substring(1).ToLower();

                    if (arg.Equals(ARG_HELP_SHORT) || arg.Equals(ARG_HELP_LONG))
                    {
                        Help();
                    }
                    else if (arg.Equals(ARG_HOST))
                    {
                        i++;
                        host = args[i];

                        _log.Debug("Found argument: '" + ARG_HOST + "' with value: '" + host + "'");
                    }
                    else if (arg.Equals(ARG_METADATA_RR_PORT))
                    {
                        i++;
                        rrPortMD = Int32.Parse(args[i]);

                        _log.Debug("Found argument: '" + ARG_METADATA_RR_PORT + "' with value: '" + rrPortMD + "'");
                    }
                    else if (arg.Equals(ARG_DATA_RR_PORT))
                    {
                        i++;
                        rrPortD = Int32.Parse(args[i]);

                        _log.Debug("Found argument: '" + ARG_DATA_RR_PORT + "' with value: '" + rrPortD + "'");
                    }
                    else if (arg.Equals(ARG_DATA_NOTIF_PORT))
                    {
                        i++;
                        notifPortD = Int32.Parse(args[i]);

                        _log.Debug("Found argument: '" + ARG_DATA_NOTIF_PORT + "' with value: '" + notifPortD + "'");
                    }
                    else if (arg.Equals(ARG_NAME))
                    {
                        i++;
                        name = args[i];

                        _log.Debug("Found argument: '" + ARG_NAME + "' with value: '" + name + "'");
                    }
                }
                else
                {
                    int sep = arg.IndexOf(SEP);
                    if (sep < 1)
                    {
                        _log.Warn("Skipping unrecognizable argument: '" + arg + "'");
                    }
                    else
                    {
                        string par = arg.Substring(0, sep).Trim();
                        string val = arg.Substring(sep + 1).Trim();
                        parameters[par] = val;

                        _log.Debug("Found parameter: '" + par + "' with value: '" + val + "'");
                    }
                }
            }

            PortfolioFeedSimulator feed = new PortfolioFeedSimulator();

            // A reference to the feed simulator will be supplied
            // to both the Data and the Matedata Adapters.

            try
            {
                {
                    MetadataProviderServer server = new MetadataProviderServer();
                    Lightstreamer.Adapters.PortfolioDemo.Metadata.PortfolioMetadataAdapter adapter =
                        new Lightstreamer.Adapters.PortfolioDemo.Metadata.PortfolioMetadataAdapter();
                    // We complete the Metadata Adapter initialization by supplying
                    // a reference to the feed simulator through a custom method;
                    // for this reason, the Portfolio Demo Metadata Adapter
                    // does not support the basic DotNetServer.exe launcher
                    // provided by LS library,
                    adapter.SetFeed(feed);

                    server.Adapter       = adapter;
                    server.AdapterParams = parameters;
                    // server.AdapterConfig not needed by PortfolioMetadataAdapter
                    if (name != null)
                    {
                        server.Name = name;
                    }
                    _log.Debug("Remote Metadata Adapter initialized");

                    ServerStarter starter = new ServerStarter(host, rrPortMD, -1);
                    starter.Launch(server);
                }

                {
                    DataProviderServer server = new DataProviderServer();
                    Lightstreamer.Adapters.PortfolioDemo.Data.PortfolioAdapter adapter =
                        new Lightstreamer.Adapters.PortfolioDemo.Data.PortfolioAdapter();
                    // We complete the Data Adapter initialization by supplying
                    // a reference to the feed simulator through a custom method;
                    // for this reason, the Portfolio Demo Data Adapter
                    // does not support the basic DotNetServer.exe launcher
                    // provided by LS library,
                    adapter.SetFeed(feed);

                    server.Adapter = adapter;
                    // server.AdapterParams not needed by PortfolioAdapter
                    // server.AdapterConfig not needed by PortfolioAdapter
                    if (name != null)
                    {
                        server.Name = name;
                    }
                    _log.Debug("Remote Data Adapter initialized");

                    ServerStarter starter = new ServerStarter(host, rrPortD, notifPortD);
                    starter.Launch(server);
                }
            }
            catch (Exception e)
            {
                _log.Fatal("Exception caught while starting the server: " + e.Message + ", aborting...", e);
            }

            _log.Info("Lightstreamer PortfolioDemo .NET Adapter Custom Server running");
        }
コード例 #3
0
        public static void Main(string[] args)
        {
            var config = new NLog.Config.LoggingConfiguration();

            var logfile = new NLog.Targets.FileTarget("logfile")
            {
                FileName = "TestAdapter.log"
            };
            var logconsole = new NLog.Targets.ConsoleTarget("logconsole");

            config.AddRule(LogLevel.Debug, LogLevel.Fatal, logconsole);
            config.AddRule(LogLevel.Info, LogLevel.Fatal, logfile);

            NLog.LogManager.Configuration = config;

            if (args.Length == 0)
            {
                Help();
            }

            nLog.Info("Lightstreamer StockListDemo .NET Adapter Standalone Server starting ...");

            Server.SetLoggerProvider(new Log4NetLoggerProviderWrapper());

            IDictionary parameters = new Hashtable();
            string      host       = null;
            bool        isTls      = false;
            int         rrPortMD   = -1;
            int         rrPortD    = -1;
            int         notifPortD = -1;
            string      username   = null;
            string      password   = null;
            string      name       = null;

            for (int i = 0; i < args.Length; i++)
            {
                string arg = args[i];

                if (arg.StartsWith(PREFIX1) || arg.StartsWith(PREFIX2))
                {
                    arg = arg.Substring(1).ToLower();

                    if (arg.Equals(ARG_HELP_SHORT) || arg.Equals(ARG_HELP_LONG))
                    {
                        Help();
                    }
                    else if (arg.Equals(ARG_HOST))
                    {
                        i++;
                        host = args[i];

                        nLog.Debug("Found argument: '" + ARG_HOST + "' with value: '" + host + "'");
                    }
                    else if (arg.Equals(ARG_TLS))
                    {
                        isTls = true;

                        nLog.Debug("Found argument: '" + ARG_TLS + "'");
                    }
                    else if (arg.Equals(ARG_METADATA_RR_PORT))
                    {
                        i++;
                        rrPortMD = Int32.Parse(args[i]);

                        nLog.Debug("Found argument: '" + ARG_METADATA_RR_PORT + "' with value: '" + rrPortMD + "'");
                    }
                    else if (arg.Equals(ARG_DATA_RR_PORT))
                    {
                        i++;
                        rrPortD = Int32.Parse(args[i]);

                        nLog.Debug("Found argument: '" + ARG_DATA_RR_PORT + "' with value: '" + rrPortD + "'");
                    }
                    else if (arg.Equals(ARG_DATA_NOTIF_PORT))
                    {
                        i++;
                        notifPortD = Int32.Parse(args[i]);

                        nLog.Debug("Found argument: '" + ARG_DATA_NOTIF_PORT + "' with value: '" + notifPortD + "'");
                    }
                    else if (arg.Equals(ARG_USER))
                    {
                        i++;
                        username = args[i];

                        nLog.Debug("Found argument: '" + ARG_USER + "' with value: '" + username + "'");
                    }
                    else if (arg.Equals(ARG_PASSWORD))
                    {
                        i++;
                        password = args[i];

                        nLog.Debug("Found argument: '" + ARG_PASSWORD + "' with value: '" + password + "'");
                    }
                    else if (arg.Equals(ARG_NAME))
                    {
                        i++;
                        name = args[i];

                        nLog.Debug("Found argument: '" + ARG_NAME + "' with value: '" + name + "'");
                    }
                }
                else
                {
                    int sep = arg.IndexOf(SEP);
                    if (sep < 1)
                    {
                        nLog.Warn("Skipping unrecognizable argument: '" + arg + "'");
                    }
                    else
                    {
                        string par = arg.Substring(0, sep).Trim();
                        string val = arg.Substring(sep + 1).Trim();
                        parameters[par] = val;

                        nLog.Debug("Found parameter: '" + par + "' with value: '" + val + "'");
                    }
                }
            }

            try
            {
                if ((username != null) != (password != null))
                {
                    throw new Exception("Incomplete setting of /user and /password arguments");
                }

                {
                    MetadataProviderServer server = new MetadataProviderServer();
                    server.Adapter       = new Lightstreamer.Adapters.Metadata.LiteralBasedProvider();
                    server.AdapterParams = parameters;
                    // server.AdapterConfig not needed by LiteralBasedProvider
                    if (parameters["name"] != null)
                    {
                        server.Name = "Test:LBP";
                    }
                    if (username != null)
                    {
                        server.RemoteUser     = username;
                        server.RemotePassword = password;
                    }
                    nLog.Debug("Remote Metadata Adapter initialized");

                    ServerStarter starter = new ServerStarter(host, isTls, rrPortMD, -1);
                    starter.Launch(server);
                }

                {
                    DataProviderServer server = new DataProviderServer();
                    server.Adapter = new Lightstreamer.Adapters.StockListDemo.Data.StockListDemoAdapter();
                    // server.AdapterParams not needed by StockListDemoAdapter
                    // server.AdapterConfig not needed by StockListDemoAdapter
                    if (name != null)
                    {
                        server.Name = name;
                    }
                    if (username != null)
                    {
                        server.RemoteUser     = username;
                        server.RemotePassword = password;
                    }
                    nLog.Debug("Remote Data Adapter initialized");

                    ServerStarter starter = new ServerStarter(host, isTls, rrPortD, notifPortD);
                    starter.Launch(server);
                }
            }
            catch (Exception e)
            {
                nLog.Fatal("Exception caught while starting the server: " + e.Message + ", aborting...", e);
            }

            nLog.Info("Lightstreamer StockListDemo .NET Adapter Standalone Server running");
        }