/// <summary> /// Creates a measurement with the specified name, DateTime as Key and the specified type as Value /// </summary> /// <param name="name"></param> /// <param name="type"></param> /// <param name="db"></param> public Measurement(string name, Type type, Db db) : this() { _db = db; MetadataInternal = new MeasurementMetadata(name); MetadataInternal.ColumnsInternal.Add(new Column(Settings.Default.KeyColumnName, typeof(DateTime))); MetadataInternal.ColumnsInternal.Add(new Column(Settings.Default.ValueColumnName, type)); Init(); }
//Later, a more sophisticated factory method is required public RowReaderWriter CreateRowReaderWriter(MeasurementMetadata metadata) { var valueType = metadata.ColumnsInternal[1].ValueType; if (valueType == typeof (float)) { return new FloatRowReaderWriter(); } if (valueType == typeof (double)) { return new DoubleRowReaderWriter(); } if (valueType == typeof (bool)) { return new BoolRowReaderWriter(); } if (valueType == typeof (byte)) { return new ByteRowReaderWriter(); } if (valueType == typeof (short)) { return new ShortRowReaderWriter(); } if (valueType == typeof (int)) { return new IntRowReaderWriter(); } if (valueType == typeof (long)) { return new LongRowReaderWriter(); } if (valueType == typeof (decimal)) { return new DecimalRowReaderWriter(); } if (valueType == typeof (DateTime)) { return new DateTimeRowReaderWriter(); } throw new NotSupportedException("Invalid column type"); }
public Measurement(MeasurementMetadata metadataInternal, Db db) : this() { _db = db; MetadataInternal = metadataInternal; Init(); }