public SerializableEncoder(SimpleStream stream, SimpleStreamSerializable serializable) : base(stream) { uint objectHeader = (uint)((serializable.m_objectMainCode << 16) | (serializable.m_objectSubCode << 8) | (serializable.m_objectVersion)); m_objectLen = 0; m_lenPtr = stream.m_bufPtr + 4; Encode4(objectHeader); // Object header Encode4(0); // Object length : dummy value at this time }
public SerializableDecoder(SimpleStream stream, SimpleStreamSerializable serializable) : base(stream) { uint objectHeader = base.Decode4(); m_objectLen = base.Decode4(); m_startPtr = m_stream.m_bufPtr; if ((objectHeader >> 16) == serializable.m_objectMainCode) { m_decodedVersion = (byte)(objectHeader & 0x000000FF); } else { throw new WrongVersionStream(); } }
public SimpleStreamSerializable Assign(SimpleStreamSerializable rhs) { SimpleStream stream = new SimpleStream(); rhs.Serialize(stream); stream.ResetPtr(); DeSerialize(stream); return this; }