/// <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)); } } }
/// <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 _)); }
/// <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 _)); }
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); }
public AsyncData(ILogDataSource s, byte[] b) { Source = s; Buffer = b; Read = 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; } }