예제 #1
0
    public static void RemoveDataMonitor(DataMonitor dm)
    {
        if (dm == null)
        {
            return;
        }
        Dictionary <string, List <DataMonitor> > ms;

        if (!dataMonitor.TryGetValue(dm.data, out ms))
        {
            return;
        }
        List <DataMonitor> ds;

        if (!ms.TryGetValue(dm.field, out ds))
        {
            return;
        }
        ds.Remove(dm);
        if (ds.Count == 0)
        {
            ms.Remove(dm.field);
            if (ms.Count == 0)
            {
                dataMonitor.Remove(dm.data);
            }
        }
    }
        public PerformanceMonitor(PerformanceMonitorConfiguration configuration, ISession session, ILog log = null, bool?forceEnabledState = null)
        {
            _configuration  = configuration;
            ContinueOnError = true;

            _monitorLog = log ?? _configuration.GetLogger();
            _genericLog = LogManager.GetLogger(_typeOfThis);

            if (_configuration != null && forceEnabledState.HasValue)
            {
                _configuration.Enabled = forceEnabledState.Value;
            }

            try
            {
                if (_configuration?.Enabled == true)
                {
                    if (configuration.ControllerAction.Enabled)
                    {
                        ControllerActionMonitor = new ActionMonitor(_configuration.ControllerAction, session);
                    }

                    if (configuration.DataConfiguration.Enabled)
                    {
                        if (configuration.DataConfiguration.ClientData.Enabled)
                        {
                            RequestMonitor = new DataMonitor("Request Data", configuration.DataConfiguration.ClientData, session);
                        }

                        if (configuration.DataConfiguration.Model2DTO.Enabled)
                        {
                            ResponseMonitorPreAction  = new DataMonitor("Response Data Pre Action", _configuration.DataConfiguration.Model2DTO, session);
                            ResponseMonitorPostAction = new DataMonitor("Response Data Post Action", _configuration.DataConfiguration.Model2DTO, session);
                        }

                        if (configuration.DataConfiguration.DTO2ViewModel.Enabled)
                        {
                            ConversionMonitor = new DataMonitor("DTO to ViewModel Conversion", _configuration.DataConfiguration.DTO2ViewModel, session);
                        }
                    }

                    if (configuration.DBFlush.Enabled)
                    {
                        DatabaseFlushMonitor = new DataMonitor("Database Flush Monitor", configuration.DBFlush, session);
                    }
                }
            }
            catch (Exception e)
            {
                _genericLog.Error($"{_nameOfThis} - Failed to initialize {_nameOfThis}: {e.Message}");
                _genericLog.Debug($"{_nameOfThis} - Failed to initialize {_nameOfThis}: {e.StackTrace}");
                if (!ContinueOnError)
                {
                    throw;
                }
            }
        }
예제 #3
0
 private void ResolveMonitor(Node node)
 {
     if (_dataMonitor == null)
     {
         GraphDatabaseService service = node.GraphDatabase;
         if (service is GraphDatabaseFacade)
         {
             Monitors monitors = (( GraphDatabaseFacade )service).DependencyResolver.resolveDependency(typeof(Monitors));
             _dataMonitor = monitors.NewMonitor(typeof(DataMonitor));
         }
     }
 }
예제 #4
0
 public frm_MainX()
 {
     InitializeComponent();
     SiArray = new List <SecurityInfo>();
     da      = new DataMonitor();
     this.rbt_stop.Enabled = false;
     GlobalValue.Initialize();
     PolicyProgram.Load();
     TradeSDK.Load();
     CheckDirectory();
     _dataQueue = new ConcurrentQueue <TickData>();
     RunningST  = new Dictionary <string, BaseTradeAPI>();
     traders    = new Dictionary <string, Trader>();
 }
예제 #5
0
        static void ThreadWorker(ref DataMonitor <Student> dataMonitor, ref ResultsMonitor resultsMonitor)
        {
            Student student;

            while ((student = (Student)dataMonitor.GetLastElement()) != null)
            {
                if (IsValid(student))
                {
                    resultsMonitor.AddElement(student);
                }
            }
            Console.WriteLine("One thread finished");
            return;
        }
예제 #6
0
    public static DataMonitor AddDataMonitor(object tag, object data, string field, UnityAction callback)
    {
        List <DataMonitor> list = null;

        for (int i = list.Count - 1; i >= 0; i--)
        {
            if (list[i].data == data && list[i].field == field)
            {
                RemoveDataMonitor(list[i]);
                list.Remove(list[i]);
            }
        }
        DataMonitor dm = new DataMonitor(data, field, callback);

        AddDataMonitor(dm);
        list.Add(dm);
        return(dm);
    }
예제 #7
0
    public static DataMonitor AddDataMonitor(DataMonitor dm)
    {
        Dictionary <string, List <DataMonitor> > ms;

        if (!dataMonitor.TryGetValue(dm.data, out ms))
        {
            ms = new Dictionary <string, List <DataMonitor> >();
            dataMonitor[dm.data] = ms;
        }
        List <DataMonitor> ds;

        if (!ms.TryGetValue(dm.field, out ds))
        {
            ds           = new List <DataMonitor>(1);
            ms[dm.field] = ds;
        }
        ds.Add(dm);
        return(dm);
    }
예제 #8
0
        /// <summary>
        /// 数据库实体转换
        /// </summary>
        /// <param name="baseEntity"></param>
        /// <returns></returns>
        public override BaseEntity ConvertEntity(BYDQBaseEntity baseEntity)
        {
            var entity   = baseEntity as DataMonitorEntity;
            var protocol = new DataMonitor();

            protocol.Encryption       = Convert.ToByte(entity.Encryption);
            protocol.Type             = Convert.ToByte(entity.Type);
            protocol.CMD              = Convert.ToByte(entity.CMD);
            protocol.FunctionCode     = (ushort)entity.FunctionNumber;
            protocol.ResponseSign     = Convert.ToByte(entity.ResponseSign);
            protocol.FunctionStatus   = Convert.ToByte(entity.FunctionStatus);
            protocol.UniqueIdentity   = entity.UniqueIdentity;
            protocol.ProductType      = Convert.ToByte(entity.ProductType);
            protocol.CloudProductCode = Convert.ToByte(entity.CloudProductCode);
            protocol.TimeStamp        = (ulong)BytesExtend.ConvertDataTimeToLong(entity.Time);
            protocol.UUID             = entity.UUID;
            protocol.SignType         = Convert.ToByte(entity.SignType);
            protocol.CNT              = (ushort)entity.DbCNT;
            protocol.SEQ              = (ushort)entity.DbSEQ;
            protocol.DataUnitList     = ProtoBufSerialize.Deserialize <List <CanMessageData> >(entity.CanMessageData, 0, entity.CanMessageData.Length);
            return(protocol);
        }
        private frm_RunPolicy(bool issim)
        {
            stockMonitors = new Dictionary <Guid, uc_StockMonitor>();
            InitializeComponent();
            //panel_stockmonitor.HorizontalScroll.Maximum = 0;
            //panel_stockmonitor.AutoScroll = false;
            //panel_stockmonitor.VerticalScroll.Visible = false;
            //panel_stockmonitor.AutoScroll = true;
            da              = new DataMonitor();
            SimulatThread   = new List <Thread>();
            this.isSim      = issim;
            cs_up           = grid_realpolicy.Styles.Add("up");
            cs_up.ForeColor = Color.Red;

            cs_down             = grid_realpolicy.Styles.Add("down");
            cs_down.ForeColor   = Color.Green;
            cs_even             = grid_realpolicy.Styles.Add("even");
            cs_even.ForeColor   = Color.Black;
            cs_change           = grid_realpolicy.Styles.Add("change");
            cs_change.ForeColor = Color.White;
            cs_change.BackColor = Color.Blue;
        }
예제 #10
0
        static void Main(string[] args)
        {
            //Nuskaitomi duomenys iš failų
            List <Student> students = ReadData();

            List <Thread> threads = new List <Thread>();

            ResultsMonitor        resultsMonitor = new ResultsMonitor();
            DataMonitor <Student> dataMonitor    = new DataMonitor <Student>(students.Count);

            //Paleidžiamos darbininkių gijos, kurios ims duomenis iš duomenų monitoriaus
            for (int i = 0; i < 20; i++)
            {
                threads.Add(new Thread(() => ThreadWorker(ref dataMonitor, ref resultsMonitor)));
            }

            threads.ForEach(thread =>
            {
                thread.Start();
            });

            //Pagrindinė gija deda elementus į duomenų monitorių
            students.ForEach(x =>
            {
                dataMonitor.AddElement(x);
            });

            threads.ForEach(thread =>
            {
                thread.Join();
            });

            Console.WriteLine("Results: " + resultsMonitor);

            SaveResults(resultsMonitor);

            Console.ReadKey();
        }
예제 #11
0
        public frm_Monitor()
        {
            stockMonitors = new Dictionary <Guid, uc_StockMonitor>();
            InitializeComponent();
            panel_stockmonitor.HorizontalScroll.Maximum = 0;
            panel_stockmonitor.AutoScroll             = false;
            panel_stockmonitor.VerticalScroll.Visible = false;
            //注意启用滚动的顺序,应是完成设置的最后一条语句
            panel_stockmonitor.AutoScroll = true;
            da            = new DataMonitor();
            SimulatThread = new List <Thread>();
            GUITools.DoubleBuffer(this.grid_result, true);
            InitializeGridX();
            cb_RaiseMessage           = new CheckBox();
            cb_RaiseMessage.Text      = string.Empty;
            cb_RaiseMessage.FlatStyle = FlatStyle.Popup;
            cb_RaiseMessage.Width     = 100;
            //cb_RaiseMessage.AutoSize = true;
            cb_RaiseMessage.BackColor = Color.Transparent;
            ToolStripControlHost host = new ToolStripControlHost(cb_RaiseMessage);

            this.ts_main.Items.Insert(this.ts_main.Items.Count - 1, host);
        }
예제 #12
0
        private void StartBackTest()
        {
            DateTime        today       = btParameter.StartDate.Date;
            MarketTimeRange marketRange = MarketTimeRange.getTimeRange(securityInfo.Market);
            int             totalcount  = this.policys.Count;

            DataMonitor da = new DataMonitor();

            Parallel.For(0, totalcount, (j, LoopState) =>
            {
                RunningPolicy policy = policys[j];
                Guid g = policy.PolicyGuid;
                string backtesttitle = policy.getBackTestTitle();
                PolicyStarted(new BackTestStartEventArgs(backtesttitle, g));
                policy.PolicyResult_Arrival += policy_PolicyResult_Arrival;
            });
            while (today <= btParameter.EndDate.Date)
            {
                string name = ConfigFileName.HistoryDataFileName + "\\Okex%" + securityInfo.Code + "%" + today.ToString("yyyyMMdd") + ".csv";
                //string name = ConfigFileName.HistoryDataFileName + "\\XBTUSD-" + today.ToString("yyyyMMdd") + ".csv";
                PolicyLoading(name);
                DataTable       tickdatas     = CSVFileHelper.OpenCSV(name);
                List <TickData> list_tickdata = new List <TickData>();
                for (int i = 0; i < tickdatas.Rows.Count; i++)
                {
                    DataRow  dr       = tickdatas.Rows[i];
                    DateTime tickTime = System.Convert.ToDateTime(dr["timestamp"].ToString().Replace("D", " ").Substring(0, 23));

                    //TickData tickdata = TickData.ConvertFromDataRow(dr);

                    TickData tickdata = new TickData();
                    tickdata.Code     = dr["symbol"].ToString();
                    tickdata.SecInfo  = this.securityInfo;
                    tickdata.Time     = tickTime;
                    tickdata.Preclose = 0;
                    tickdata.Open     = 0;
                    tickdata.High     = 0;
                    tickdata.Low      = 0;
                    tickdata.Ask      = System.Convert.ToDouble(dr["askPrice"]);
                    tickdata.Bid      = System.Convert.ToDouble(dr["bidPrice"]);
                    tickdata.Last     = (tickdata.Ask + tickdata.Bid) / 2;
                    tickdata.Volume   = 0;
                    tickdata.Amt      = 0;
                    tickdata.IsReal   = false;
                    tickdata.Asks[0]  = tickdata.Ask;
                    tickdata.Bids[0]  = tickdata.Bid;
                    list_tickdata.Add(tickdata);
                }
                Parallel.For(0, totalcount, (j, LoopState) =>
                {
                    RunningPolicy policy = policys[j];
                    //policy.PolicyMessage_Arrival += policy_PolicyMessage_Arrival;
                    //da.Simulator(tickdatas, policy.PolicyDataReceiver, policy.Inteval);
                    da.BackSimulator(list_tickdata, policy.PolicyDataReceiver, 0);
                    PolicyDataFinished();
                });

                list_tickdata.Clear();
                today = today.AddDays(1);
            }
            Parallel.For(0, totalcount, (j, LoopState) =>
            {
                Stopwatch sw         = new Stopwatch();
                RunningPolicy policy = policys[j];
                Guid g = policy.PolicyGuid;
                PolicyFinished(g, sw.Elapsed);
                policy.PolicyResult_Arrival -= policy_PolicyResult_Arrival;
                sw.Stop();
            });


            RaiseFinished(new EventArgs());
        }
예제 #13
0
 public Executor(ZooKeeper zk, string znode = "/jzterp")
 {
     _zk = zk;
     _dm = new DataMonitor(_zk, znode, null, this);
 }
예제 #14
0
 private void ShowMonitor(object sender, EventArgs e)
 {
     using (var monitor = new DataMonitor(Browser)) {
         monitor.ShowDialog();
     }
 }