private static unsafe void VerifyData (byte *singleByte, ValueReader reader, int pos, int desired) { int val; reader.Skip(pos); reader.Read(singleByte, 1); val = *singleByte; Assert.Equal(desired, val); }
public void Read(Stream stream, DbEnvironment env, IFormatToken previousFormatToken) { Logger.Instance?.WriteLine($"<- {Type}"); var values = new List <object>(); foreach (var format in previousFormatToken.Formats) { values.Add(ValueReader.Read(stream, format, env)); } Values = values.ToArray(); }
public void Read(Stream stream, DbEnvironment env, IFormatToken previous) { var parameters = new List <Parameter>(); foreach (var format in previous.Formats) { var p = new Parameter { Format = format, Value = ValueReader.Read(stream, format, env) }; parameters.Add(p); } Parameters = parameters.ToArray(); }
public void Read(Stream stream, DbEnvironment env, IFormatToken previous) { var parameters = new List <Parameter>(); foreach (var format in previous.Formats) { var p = new Parameter { Format = format, Value = ValueReader.Read(stream, format, env) }; parameters.Add(p); } Parameters = parameters.ToArray(); Logger.Instance?.WriteLine($"<- {Type}: {Parameters.Length} parameters"); }
public StreamBitArray(ValueReader reader) { if (!BitConverter.IsLittleEndian) throw new NotSupportedException("Big endian conversion is not supported yet."); SetCount = reader.ReadLittleEndianInt32(); unsafe { fixed (int* i = _inner) { int read = reader.Read((byte*)i, _inner.Length * sizeof(int)); if (read < _inner.Length * sizeof(int)) throw new EndOfStreamException(); } } }
private void DeleteTermsForIndexEntry(SnapshotReader snapshot, ValueReader reader, long id, int fieldId) { var termBuffer = _bufferPool.Take(reader.Length); _usedBuffers.Add(termBuffer); reader.Read(termBuffer, 0, reader.Length); var termSlice = new Slice(termBuffer, (ushort)reader.Length); var tree = GetTreeName(fieldId); using (var termIt = snapshot.MultiRead(tree, termSlice)) { var currentFieldDocument = _bufferPool.Take(FullTextIndex.FieldDocumentSize); try { if (termIt.Seek(new Slice(currentFieldDocument)) == false) { return; } do { termIt.CurrentKey.CopyTo(currentFieldDocument); if (EndianBitConverter.Big.ToInt64(currentFieldDocument, 0) != id) { break; } var valueBuffer = _bufferPool.Take(termIt.CurrentKey.Size); _usedBuffers.Add(valueBuffer); termIt.CurrentKey.CopyTo(valueBuffer); _writeBatch.MultiDelete(termSlice, new Slice(valueBuffer), tree); } while (termIt.MoveNext()); } finally { _bufferPool.Return(currentFieldDocument); } } }
public StreamBitArray(ValueReader reader) { if (!BitConverter.IsLittleEndian) { throw new NotSupportedException("Big endian conversion is not supported yet."); } SetCount = reader.ReadLittleEndianInt32(); unsafe { fixed(int *i = _inner) { int read = reader.Read((byte *)i, _inner.Length * sizeof(int)); if (read < _inner.Length * sizeof(int)) { throw new EndOfStreamException(); } } } }