public void WriteFile() { HistorianKey key = new HistorianKey(); HistorianValue value = new HistorianValue(); if (File.Exists("c:\\temp\\ArchiveTestFileBig.d2")) { File.Delete("c:\\temp\\ArchiveTestFileBig.d2"); } //using (var af = ArchiveFile.CreateInMemory(CompressionMethod.TimeSeriesEncoded)) using (SortedTreeFile af = SortedTreeFile.CreateFile("c:\\temp\\ArchiveTestFileBig.d2")) using (SortedTreeTable <HistorianKey, HistorianValue> af2 = af.OpenOrCreateTable <HistorianKey, HistorianValue>(EncodingDefinition.FixedSizeCombinedEncoding)) { Random r = new Random(3); for (ulong v1 = 1; v1 < 36; v1++) { using (var edit = af2.BeginEdit()) { for (ulong v2 = 1; v2 < 86000; v2++) { key.Timestamp = v1 * 2342523; key.PointID = v2; value.Value1 = (ulong)r.Next(); value.Value3 = 0; edit.AddPoint(key, value); } edit.Commit(); } af2.Count(); } af2.Count(); } }
SortedTreeTable <HistorianKey, HistorianValue> CreateTable() { Random r = new Random(seed++); HistorianKey key = new HistorianKey(); HistorianValue value = new HistorianValue(); SortedTreeFile file = SortedTreeFile.CreateInMemory(); SortedTreeTable <HistorianKey, HistorianValue> table = file.OpenOrCreateTable <HistorianKey, HistorianValue>(EncodingDefinition.FixedSizeCombinedEncoding); using (SortedTreeTableEditor <HistorianKey, HistorianValue> edit = table.BeginEdit()) { for (int x = 0; x < 1000; x++) { key.Timestamp = (ulong)r.Next(); key.PointID = (ulong)r.Next(); key.EntryNumber = (ulong)r.Next(); edit.AddPoint(key, value); } edit.Commit(); } return(table); }
public void ReadFile() { using (SortedTreeFile af = SortedTreeFile.OpenFile("c:\\temp\\ArchiveTestFileBig.d2", isReadOnly: true)) using (SortedTreeTable <HistorianKey, HistorianValue> af2 = af.OpenOrCreateTable <HistorianKey, HistorianValue>(EncodingDefinition.FixedSizeCombinedEncoding)) { HistorianKey key = new HistorianKey(); HistorianValue value = new HistorianValue(); Random r = new Random(3); SortedTreeScannerBase <HistorianKey, HistorianValue> scanner = af2.AcquireReadSnapshot().CreateReadSnapshot().GetTreeScanner(); scanner.SeekToStart(); for (ulong v1 = 1; v1 < 36; v1++) { for (ulong v2 = 1; v2 < 86000; v2++) { Assert.IsTrue(scanner.Read(key, value)); Assert.AreEqual(key.Timestamp, v1 * 2342523); Assert.AreEqual(key.PointID, v2); Assert.AreEqual(value.Value3, 0ul); Assert.AreEqual(value.Value1, (ulong)r.Next()); } } } }