public RawMetaInfo GetStreamRawMeta(string streamId) { var metastreamId = SystemStreams.MetastreamOf(streamId); var metaLastEventNumber = GetStreamLastEventNumber(metastreamId); StreamMeta meta; if (!_streamRawMetas.TryGet(streamId, out meta)) { meta = new StreamMeta(_indexReader.ReadPrepare(metastreamId, metaLastEventNumber).Data, null); } return(new RawMetaInfo(metaLastEventNumber, meta.RawMeta)); }
public RawMetaInfo GetStreamRawMeta(string streamId) { var metastreamId = SystemStreams.MetastreamOf(streamId); var metaLastEventNumber = GetStreamLastEventNumber(metastreamId); StreamMeta meta; if (!_streamRawMetas.TryGet(streamId, out meta)) meta = new StreamMeta(_indexReader.ReadPrepare(metastreamId, metaLastEventNumber).Data, null); return new RawMetaInfo(metaLastEventNumber, meta.RawMeta); }
private void parseMetadata(Stream stream) { var bt = SecDBPrimitives.ReadByte(stream); if (bt != 0x01)//0x1 - Streams header { throw new FinancialException("StreamsMeta.Header != 0x01"); } //Compression bt = SecDBPrimitives.ReadByte(stream); if (bt == 0) { m_Streams_CompressionType = CompressionType.None; } else if (bt == 1) { m_Streams_CompressionType = CompressionType.GZip; } else { throw new FinancialException("StreamsMeta.Compression != 0 | 1"); } //DataOffset m_Streams_DataOffset = SecDBPrimitives.ReadUInt32(stream); //Stream Count var scount = SecDBPrimitives.ReadByte(stream); m_Streams_Metas = new StreamMeta[scount + 1]; m_Streams_Metas[0] = new StreamMeta(StreamID.Seconds); //StreamMeta for (var i = 1; i <= scount; i++) //<= as scount does not include zeros element which is mandatory { bt = SecDBPrimitives.ReadByte(stream); if (bt != 0x02)//0x2 - Stream header { throw new FinancialException("StreamMeta.Header != 0x02"); } //StreamID bt = SecDBPrimitives.ReadByte(stream); if (bt > (byte)StreamID.MAX_ID) { throw new FinancialException("StreamMeta.StreamID {0} = invalid".Args(bt)); } var sid = (StreamID)bt; m_Streams_Metas[i] = new StreamMeta(sid); } //CandlesMeta parseCandlesMeta(stream); //Verify data start //Beginning of Stream Data Marker stream.Seek(m_Streams_DataOffset, SeekOrigin.Begin); var magic = SecDBPrimitives.ReadUInt32(stream); if (magic != 0xABBABABA) { throw new FinancialException("StreamDataMarker != 0xABBABABA"); } }