コード例 #1
0
        private void StartUp()
        {
            try
            {
                var factory = new CoreClientFactory(_loggerRef)
                              .SetEnv("Dev")
                              .SetApplication(Assembly.GetExecutingAssembly())
                              .SetProtocols(WcfConst.AllProtocolsStr)
                              .SetServers("localhost");
                var client = factory.Create();
                _clientRef = Reference <ICoreClient> .Create(client);

                _cache = _clientRef.Target.CreateCache();
                // init controls
                // - form title
                var env = _clientRef.Target.ClientInfo.ConfigEnv;
                Text += String.Format(" ({0})", EnvHelper.EnvName(env));
                // - server port
                int defaultPort = EnvHelper.SvcPort(env, SvcId.GridSwitch);
                chkChangePort.Text = String.Format("Change server port from default ({0}) to:", defaultPort);
                _syncContext.Post(OnClientStateChange, new CoreStateChange(CoreStateEnum.Initial, _clientRef.Target.CoreState));
                _clientRef.Target.OnStateChange += _Client_OnStateChange;
            }
            catch (Exception excp)
            {
                _loggerRef.Target.Log(excp);
            }
        }
コード例 #2
0
        private void Form1Load(object sender, EventArgs e)
        {
            // create logger
            _loggerRef = Reference <ILogger> .Create(new TextBoxLogger(txtLog));

            // init controls
            // - form title
            WinFormHelper.SetAppFormTitle(this, BuildConst.BuildEnv);
            // - provider list
            foreach (MDSProviderId provider in Enum.GetValues(typeof(MDSProviderId)))
            {
                bool enabled = false;
                switch (provider)
                {
                case MDSProviderId.GlobalIB: enabled = true; break;

                case MDSProviderId.Bloomberg: enabled = true; break;

                case MDSProviderId.Simulator: enabled = true; break;
                }
                clbEnabledProviders.Items.Add(provider.ToString(), enabled);
            }
            // - server port
            int defaultPort = EnvHelper.SvcPort(EnvHelper.ParseEnvName(BuildConst.BuildEnv), SvcId.MarketData);

            chkChangePort.Text = String.Format("Change server port from default ({0}) to:", defaultPort);
        }
コード例 #3
0
        private void StartUp()
        {
            // default configuration
            EnvId env = IntClient.Target.ClientInfo.ConfigEnv;

            // derived configuration
            _serverPort = OtherSettings.GetValue(WFPropName.Port, EnvHelper.SvcPort(env, SvcId.GridSwitch));
            _nodeId     = OtherSettings.GetValue(WFPropName.NodeId, Guid.NewGuid());
            // create router/worker worksteps
            Routers = GridWorksteps.Create().ToArray();
            Workers = GridWorksteps.Create().ToArray();
            // start discovery endpoint
            string endpoint = ServiceHelper.FormatEndpoint(WcfConst.NetTcp, _serverPort);
            string svcName  = EnvHelper.SvcPrefix(SvcId.GridSwitch);

            _discoServerHost = new CustomServiceHost <IDiscoverV111, DiscoverRecverV111>(
                Logger, new DiscoverRecverV111(this), endpoint,
                svcName, typeof(IDiscoverV111).Name, true);
            IWorkContext context = new WorkContext(Logger, IntClient.Target, HostInstance, ServerInstance);

            // start gridswitch endpoints - routers before workers
            foreach (IWorkstep router in Routers)
            {
                router.Initialise(context);
                router.EnableGrid(GridLevel.Router, _nodeId, _serverPort, null);
            }
            foreach (IWorkstep worker in Workers)
            {
                worker.Initialise(context);
                worker.EnableGrid(GridLevel.Worker, _nodeId, _serverPort, null);
            }
        }
コード例 #4
0
        public WorkflowClient(IWorkContext context, NamedValueSet settings)
        {
            // default configuration
            const SvcId svc    = SvcId.GridSwitch;
            EnvId       env    = EnvHelper.ParseEnvName(BuildConst.BuildEnv);
            Guid        nodeId = Guid.NewGuid();

            // custom configuration
            if (settings != null)
            {
                // environment
                env = (EnvId)settings.GetValue(WFPropName.EnvId, (int)env);
            }
            env = EnvHelper.CheckEnv(env);
            // derived configuration
            string hosts = null;
            int    port  = EnvHelper.SvcPort(env, svc);

            if (settings != null)
            {
                port   = settings.GetValue(WFPropName.Port, port);
                hosts  = settings.GetValue(WFPropName.Hosts, hosts);
                nodeId = settings.GetValue(WFPropName.NodeId, nodeId);
            }
            string svcName = EnvHelper.SvcPrefix(svc);

            string[] serviceAddrs = EnvHelper.GetServiceAddrs(env, svc, false);
            if (hosts != null)
            {
                serviceAddrs = hosts.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            }
            ServiceAddress resolvedServer = V111Helpers.ResolveServer(context.Logger, svcName, new ServiceAddresses(WcfConst.AllProtocols, serviceAddrs, port),
                                                                      new[] { typeof(IDiscoverV111).FullName });
            // initialise worksteps
            List <IWorkstep> worksteps = GridWorksteps.Create();

            foreach (IWorkstep workstep in worksteps)
            {
                workstep.Initialise(context);
                workstep.EnableGrid(GridLevel.Client, nodeId, resolvedServer.Port, resolvedServer.Host);
            }
            Clients = worksteps.ToArray();
        }
コード例 #5
0
ファイル: Form1.cs プロジェクト: zhangz/Highlander.Net
        private void StartUp()
        {
            try
            {
                var factory = new CoreClientFactory(_loggerRef)
                              .SetEnv("Dev")
                              .SetApplication(Assembly.GetExecutingAssembly())
                              .SetProtocols(WcfConst.AllProtocolsStr)
                              .SetServers("localhost");
                var client = factory.Create();
                _clientRef = Reference <ICoreClient> .Create(client);

                _cache = _clientRef.Target.CreateCache();
                // init controls
                // - form title
                EnvId env = _clientRef.Target.ClientInfo.ConfigEnv;
                Text += String.Format(" ({0})", EnvHelper.EnvName(env));
                // - server port
                int defaultPort = EnvHelper.SvcPort(env, SvcId.GridSwitch);
                _qasDefViewHelper = new QASDefViewHelper();
                _qasDefDataHelper = new QASDefDataHelper();
                _qasDefFilters    = new ComboxBoxFilterGroup(panelQASDef, _qasDefViewHelper, QASDefSelectionChanged);
                _qasDefSelecter   = new QASDefSelecter(
                    _qasDefFilters, _qasDefViewHelper, _qasDefDataHelper);
                _qasDefView = new ListViewManager <RatesObj>(
                    _loggerRef.Target, lvQASDef, _qasDefViewHelper,
                    _qasDefSelecter, _qasDefFilters, new QASDefSorter(), _qasDefDataHelper);
                //Get the starting configuration
                //
                chkChangePort.Text = String.Format("Change server port from default ({0}) to:", defaultPort);
                //Set up the timer and the random number generator.
                //
                _timer = new System.Timers.Timer(10000);
                _rand  = new Random();
            }
            catch (Exception excp)
            {
                _loggerRef.Target.Log(excp);
            }
        }
コード例 #6
0
        protected override void OnServerStarted()
        {
            // default configuration
            _activeProviders = new[] { MDSProviderId.Bloomberg };
            // custom configuration
            string[] enabledProviders = OtherSettings.GetArray <string>(MdsPropName.EnabledProviders);
            if (enabledProviders != null && enabledProviders.Length > 0)
            {
                _activeProviders = enabledProviders.Select(providerName => EnumHelper.Parse <MDSProviderId>(providerName, true)).ToArray();
            }
            // derived configuration
            EnvId  envId   = IntClient.Target.ClientInfo.ConfigEnv;
            string envName = EnvHelper.EnvName(envId);
            var    port    = OtherSettings.GetValue(MdsPropName.Port, EnvHelper.SvcPort(envId, SvcId.MarketData));
            // service endpoints
            string transEndpoints = ServiceHelper.FormatEndpoint(WcfConst.NetTcp, port);
            string discoEndpoints = ServiceHelper.FormatEndpoint(WcfConst.NetTcp, port);

            transEndpoints = OtherSettings.GetValue(MdsPropName.Endpoints, transEndpoints);
            // add default port to endpoints if required
            var tempEndpoints = new List <string>();

            foreach (string ep in transEndpoints.Split(';'))
            {
                var epParts = ep.Split(':');
                var scheme  = epParts[0];
                var tport   = port;
                if (epParts.Length > 1)
                {
                    tport = Int32.Parse(epParts[1]);
                }
                tempEndpoints.Add($"{scheme}:{tport}");
            }
            transEndpoints = String.Join(";", tempEndpoints.ToArray());
            // get user identity and full name
            WindowsIdentity winIdent  = WindowsIdentity.GetCurrent();
            UserPrincipal   principal = null;

            try
            {
                var principalContext = new PrincipalContext(ContextType.Domain);
                principal = UserPrincipal.FindByIdentity(principalContext, IdentityType.SamAccountName, winIdent.Name);
            }
            catch (PrincipalException principalException)
            {
                // swallow - can occur on machines not connected to domain controller
                Logger.LogWarning("UserPrincipal.FindByIdentity failed: {0}: {1}", principalException.GetType().Name, principalException.Message);
            }
            string userFullName = null;

            if (principal != null)
            {
                userFullName = principal.GivenName + " " + principal.Surname;
            }
            _serverCfg = new ServerCfg(
                new ModuleInfo(envName, Guid.NewGuid(), winIdent.Name, userFullName, null, null),
                transEndpoints, discoEndpoints);
            foreach (MDSProviderId providerId in _activeProviders)
            {
                _providers[(int)providerId] = new MarketDataRealtimeClient(LoggerRef, MainThreadQueue, IntClient.Target, providerId);
            }
            string svcName = EnvHelper.SvcPrefix(SvcId.MarketData);

            // V2.2
            _mrktDataV221ServerHost = new CustomServiceHost <IMrktDataV221, MrktDataRecverV221>(
                Logger, new MrktDataRecverV221(this), _serverCfg.TransEndpoints,
                svcName, typeof(IMrktDataV221).Name, true);
            _sessCtrlV131ServerHost = new CustomServiceHost <ISessCtrlV131, SessCtrlRecverV131>(
                Logger, new SessCtrlRecverV131(this), _serverCfg.DiscoEndpoints,
                svcName, typeof(ISessCtrlV131).Name, true);
            _discoServerHostV111 = new CustomServiceHost <IDiscoverV111, DiscoverRecverV111>(
                Logger, new DiscoverRecverV111(this), _serverCfg.DiscoEndpoints,
                svcName, typeof(IDiscoverV111).Name, true);
        }