示例#1
0
		    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
		    }
示例#2
0
		    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();
			    }
		    }
示例#3
0
		    public SimpleStreamSerializable Assign(SimpleStreamSerializable rhs)
		    {
			    SimpleStream stream = new SimpleStream();
			
			    rhs.Serialize(stream);
			    stream.ResetPtr();
			    DeSerialize(stream);
			
			    return this;
		    }