Exemple #1
0
        /// <summary>Create a new instance of a formatter of the currently selected type</summary>
        private ILineFormatter CreateFormatter(ILogDataSource src, Encoding encoding)
        {
            switch (Settings.Format.Formatter)
            {
            case SingleLineFormatter.Name:
            {
                return(new SingleLineFormatter(encoding));
            }

            case DelimitedLineFormatter.Name:
            {
                return(new DelimitedLineFormatter());
            }

            case JsonLineFormatter.Name:
            {
                return(new JsonLineFormatter());
            }

            default:
            {
                foreach (var fmt in m_plugin_formatters.Instances)
                {
                    if (fmt.Name != Settings.Format.Formatter)
                    {
                        continue;
                    }
                    return(fmt);
                }
                return(new SingleLineFormatter(encoding));
            }
            }
        }
Exemple #2
0
        /// <summary>Choose the byte sequence to mark line endings</summary>
        private byte[] ChooseLineEnding(ILogDataSource src, Encoding encoding)
        {
            var auto_detect = string.IsNullOrEmpty(Settings.Format.LineEnding);

            if (!auto_detect)
            {
                return(Tools.GetLineEnding(Settings.Format.LineEnding));
            }

            // Auto detect the line ending
            using (var stream = src.OpenStream())
                return(Tools.GuessLineEnding(stream, encoding, Settings.LogData.MaxLineLength, out var _));
        }
Exemple #3
0
        /// <summary>Choose an encoding to apply to 'src'</summary>
        private Encoding ChooseEncoding(ILogDataSource src)
        {
            var auto_detect = string.IsNullOrEmpty(Settings.Format.Encoding);

            if (!auto_detect)
            {
                return(Tools.GetEncoding(Settings.Format.Encoding));
            }

            // Auto detect the encoding
            using (var stream = src.OpenStream())
                return(Tools.GuessEncoding(stream, out var _));
        }
Exemple #4
0
        private int m_issue;                               // Issue number for builds

        public LineIndex(ILogDataSource src, Encoding encoding, byte[] line_end, Settings settings)
        {
            Src          = src;
            m_line_index = new List <RangeI>(settings.LogData.LineCacheCount);
            m_dispatcher = Dispatcher.CurrentDispatcher;

            m_state = new State
            {
                m_encoding         = encoding,
                m_line_end         = line_end,
                m_file_buffer_size = settings.LogData.FileBufSize,
                m_line_cache_count = settings.LogData.LineCacheCount,
                m_max_line_length  = settings.LogData.MaxLineLength,
                m_ignore_blanks    = settings.LogData.IgnoreBlankLines,
            };
        }
 public StrategyMonitorControl()
 {
   this.InitializeComponent();
   this.strategyRows = new Dictionary<string, DataGridViewRow>();
   this.instrumentRows = new Dictionary<string, DataGridViewRow>();
   this.ignoreSelectionChangedEvent = false;
   this.dataViewOptions = new DataViewOptions();
   this.logDataSource = (ILogDataSource) null;
   this._Strategy_.HeaderCell.ContextMenuStrip = this.ctxFirstColumn;
   this._Strategy_.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
   this._StrategyImage_.HeaderCell.ContextMenuStrip = this.ctxFirstColumn;
   this._Instrument_.HeaderCell.ContextMenuStrip = this.ctxFirstColumn;
   this._Instrument_.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
   this._InstrumentImage_.HeaderCell.ContextMenuStrip = this.ctxFirstColumn;
   Dictionary<string, DataViewMode> dictionary = new Dictionary<string, DataViewMode>();
   dictionary.Add("Row history", DataViewMode.RowHistory);
   dictionary.Add("Column history", DataViewMode.ColumnHistory);
   dictionary.Add("Cross monitor", DataViewMode.CrossMonitor);
   this.cbxDataViewMode.ComboBox.DisplayMember = "Key";
   this.cbxDataViewMode.ComboBox.ValueMember = "Value";
   this.cbxDataViewMode.ComboBox.DataSource = (object) new BindingSource((object) dictionary, (string) null);
 }
Exemple #6
0
 public AsyncData(ILogDataSource s, byte[] b)
 {
     Source = s;
     Buffer = b;
     Read   = 0;
 }
Exemple #7
0
 public LogEntryBuilder Data(ILogDataSource dataSource)
 {
     return new LogEntryBuilder(this).Data(dataSource);
 }
 public LogEntryBuilder Data(ILogDataSource dataSource)
 {
     return Data(dataSource.GetLogData());
 }
 private void ResetData()
 {
   this.dgvData.Columns.Clear();
   this.dgvData.RowCount = 0;
   this.logDataSource = (ILogDataSource) null;
 }
 private void DataSourceChanged()
 {
   this.ResetData();
   this.tabData.Text = string.Empty;
   switch (this.dataViewOptions.Mode)
   {
     case DataViewMode.RowHistory:
       if (this.dataViewOptions.StrategyName == null)
         break;
       IList<DataGridViewColumn> columns = this.GetColumns(this.dataViewOptions.Symbol == null ? this.dgvStrategies : this.dgvInstruments);
       DataGridViewColumn dataGridViewColumn1 = this.AddColumn(this.dgvData, ColumnType.Data, "DateTime", "_DateTime_");
       dataGridViewColumn1.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
       dataGridViewColumn1.CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
       dataGridViewColumn1.Width = 120;
       this.logDataSource = (ILogDataSource) new LogDataSource<DateTime>();
       this.logDataSource.AddColumn(dataGridViewColumn1.HeaderText);
       foreach (DataGridViewColumn dataGridViewColumn2 in (IEnumerable<DataGridViewColumn>) columns)
       {
         if (dataGridViewColumn2.Visible)
         {
           this.AddColumn(this.dgvData, ColumnType.Data, dataGridViewColumn2.HeaderText);
           this.logDataSource.AddColumn(dataGridViewColumn2.HeaderText);
         }
       }
       foreach (StrategyLogList strategyLogList in this.manager.LogLists)
       {
         if (strategyLogList.StrategyName == this.dataViewOptions.StrategyName && (strategyLogList.Symbol == this.dataViewOptions.Symbol || strategyLogList.Symbol == string.Empty && this.dataViewOptions.Symbol == null))
         {
           foreach (StrategyLog strategyLog in strategyLogList.Logs)
           {
             foreach (StrategyLogItem strategyLogItem in strategyLog.Items)
               this.logDataSource.Add((object) strategyLogItem.DateTime, strategyLog.Name, strategyLogItem.Value);
           }
         }
       }
       if (this.dataViewOptions.Symbol == null)
       {
         this.tabData.Text = this.GetStrategyDisplayName(this.dataViewOptions.StrategyName);
         break;
       }
       else
       {
         this.tabData.Text = string.Format("{0} [{1}]", (object) this.dataViewOptions.Symbol, (object) this.dataViewOptions.StrategyName);
         break;
       }
     case DataViewMode.ColumnHistory:
       ColumnItem columnItem1 = this.dataViewOptions.ColumnItem;
       if (columnItem1 == null)
         break;
       DataGridView dataGridView = columnItem1.Type == ColumnType.Strategy ? this.dgvStrategies : this.dgvInstruments;
       DataGridViewColumn dataGridViewColumn3 = this.AddColumn(this.dgvData, ColumnType.Data, "DateTime", "_DateTime_");
       dataGridViewColumn3.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
       dataGridViewColumn3.CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
       dataGridViewColumn3.Width = 120;
       this.logDataSource = (ILogDataSource) new LogDataSource<DateTime>();
       this.logDataSource.AddColumn(dataGridViewColumn3.HeaderText);
       foreach (DataGridViewBand dataGridViewBand in (IEnumerable) dataGridView.Rows)
       {
         string str = (string) dataGridViewBand.Tag;
         this.AddColumn(this.dgvData, ColumnType.Data, columnItem1.Type == ColumnType.Strategy ? this.GetStrategyDisplayName(str) : str, str);
         this.logDataSource.AddColumn(str);
       }
       foreach (StrategyLogList strategyLogList in this.manager.LogLists)
       {
         if (columnItem1.Type == ColumnType.Strategy && strategyLogList.Symbol == string.Empty)
         {
           foreach (StrategyLog strategyLog in strategyLogList.Logs)
           {
             if (strategyLog.Name == columnItem1.Name)
             {
               foreach (StrategyLogItem strategyLogItem in strategyLog.Items)
                 this.logDataSource.Add((object) strategyLogItem.DateTime, strategyLogList.StrategyName, strategyLogItem.Value);
             }
           }
         }
         if (columnItem1.Type == ColumnType.Instrument && strategyLogList.Symbol != string.Empty)
         {
           foreach (StrategyLog strategyLog in strategyLogList.Logs)
           {
             if (strategyLog.Name == columnItem1.Name)
             {
               foreach (StrategyLogItem strategyLogItem in strategyLog.Items)
                 this.logDataSource.Add((object) strategyLogItem.DateTime, strategyLogList.Symbol, strategyLogItem.Value);
             }
           }
         }
       }
       this.tabData.Text = columnItem1.ToString();
       break;
     case DataViewMode.CrossMonitor:
       ColumnItem columnItem2 = this.dataViewOptions.ColumnItem;
       if (columnItem2 == null || columnItem2.Type != ColumnType.Instrument)
         break;
       this.logDataSource = (ILogDataSource) new LogDataSource<string>();
       DataGridViewColumn dataGridViewColumn4 = this.AddColumn(this.dgvData, ColumnType.Data, "Instrument", "_Instrument_");
       dataGridViewColumn4.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
       dataGridViewColumn4.CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;
       dataGridViewColumn4.Width = 80;
       this.logDataSource.AddColumn(dataGridViewColumn4.HeaderText);
       foreach (DataGridViewBand dataGridViewBand in (IEnumerable) this.dgvStrategies.Rows)
       {
         string str = (string) dataGridViewBand.Tag;
         if (str != string.Empty)
         {
           this.AddColumn(this.dgvData, ColumnType.Data, str);
           this.logDataSource.AddColumn(str);
         }
       }
       foreach (StrategyLogList strategyLogList in this.manager.LogLists)
       {
         if (strategyLogList.StrategyName != string.Empty && strategyLogList.Symbol != string.Empty)
         {
           foreach (StrategyLog strategyLog in strategyLogList.Logs)
           {
             if (strategyLog.Name == columnItem2.Name && strategyLog.Count > 0)
               this.logDataSource.Add((object) strategyLogList.Symbol, strategyLogList.StrategyName, strategyLog.Last.Value);
           }
         }
       }
       this.tabData.Text = columnItem2.ToString();
       break;
   }
 }