Example #1
0
void OOCore::CDRMessageMarshalFactory::UnmarshalInterface(Remoting::IMarshaller*, Remoting::IMessage* pMessage, const guid_t& iid, Remoting::MarshalFlags_t, IObject*& pObject)
{
	uint32_t len = pMessage->ReadValue(string_t::constant("length")).cast<uint32_t>();

	OOBase::CDRStream input(len);
	pMessage->ReadBytes(string_t::constant("data"),len,(byte_t*)input.buffer()->wr_ptr());
	input.buffer()->wr_ptr(len);

	ObjectPtr<ObjectImpl<CDRMessage> > ptrInput = ObjectImpl<CDRMessage>::CreateObject();
	ptrInput->init(input);

	pObject = ptrInput->QueryInterface(iid);
}