internal void Serialize(BuildXLWriter writer) { writer.Write(m_indexCursor); writer.Write(m_size); var serializedByteArrays = new ArrayView <byte[]>(m_byteArrays, 0, Count); writer.WriteReadOnlyList(serializedByteArrays, (w, b) => { w.WriteCompact(b.Length); w.Write(b); }); }
internal void Serialize(BuildXLWriter writer) { Contract.RequiresNotNull(writer); writer.WriteCompact(Line); writer.Write(Text); writer.WriteCompact(Position); }
internal void Serialize(BuildXLWriter writer) { Contract.Requires(writer != null); writer.WriteCompact(Line); writer.Write(Path); writer.WriteCompact(Position); }
/// <summary> /// Writes debugging marker if needed /// </summary> protected static void WriteEntryMarker(PageableStore store, BuildXLWriter writer) { if (store.Debug) { writer.Write(EntryMarker); } }
/// <nodoc /> public void Serialize(Stream stream) { using (var writer = new BuildXLWriter(false, stream, true, true)) { writer.Write(FailVmConnection); } }
private static void Serialize(BuildXLWriter writer, SerializedState state) { Contract.Requires(writer != null); writer.Write(state.NextId); GetBufferIndex(state.NextId, out int indexOfPartiallyFilledBuffer, out int lengthInPartiallyFilledBuffer); for (int i = 0; i < NumByteBuffers; i++) { if (state.ByteBuffers[i] != null) { writer.Write(state.ByteBuffers[i].Length); writer.Write(state.ByteBuffers[i], 0, i == indexOfPartiallyFilledBuffer ? lengthInPartiallyFilledBuffer : state.ByteBuffers[i].Length); } else { writer.Write(NullArrayMarker); } } state.StringSet.Serialize(writer, id => writer.Write(id)); writer.Write(state.Count); }
private static void Serialize(BuildXLWriter writer, SerializedState state) { writer.Write(state.Debug); var count = state.PageStreams.Count; writer.Write(count); foreach (var stream in state.PageStreams) { writer.Write(stream.Length); } long position = writer.BaseStream.Position; // Serialize each stream and assign it an identifier that can be looked up later var pageStreamIdentifiers = new Dictionary <PageStreamBase, int>(); for (int i = 0; i < count; i++) { pageStreamIdentifiers.Add(state.PageStreams[i], i); state.PageStreams[i].Serialize(writer); var expectedPosition = position + state.PageStreams[i].Length; Contract.Assert(expectedPosition == writer.BaseStream.Position); position = expectedPosition; } // Serialize the item location offsets writer.Write(state.LastId); for (uint i = 0; i < state.LastId; i++) { ItemLocation offset = state.ItemLocations[i + 1]; var id = pageStreamIdentifiers[offset.PageStream]; writer.Write(id); writer.Write(offset.Offset); } }
/// <summary> /// Serialzies this instance. /// </summary> public void Serialize(BuildXLWriter writer) => writer.Write(Value);