direct, i.e. no-copy, de/serialization support

This commit is contained in:
Matej Sekoranja
2013-04-12 21:54:11 +02:00
parent cd95b75563
commit 0dd6f01ef6
8 changed files with 275 additions and 2 deletions

View File

@@ -63,6 +63,12 @@ public:
buffer->align(alignment);
}
virtual bool directSerialize(ByteBuffer */*existingBuffer*/, const char* /*toSerialize*/,
std::size_t /*elementCount*/, std::size_t /*elementSize*/)
{
return false;
}
virtual void cachedSerialize(std::tr1::shared_ptr<const Field> const & field, ByteBuffer* buffer)
{
field->serialize(buffer, this);
@@ -85,6 +91,12 @@ public:
buffer->align(alignment);
}
virtual bool directDeserialize(ByteBuffer */*existingBuffer*/, char* /*deserializeTo*/,
std::size_t /*elementCount*/, std::size_t /*elementSize*/)
{
return false;
}
virtual std::tr1::shared_ptr<const Field> cachedDeserialize(ByteBuffer* buffer)
{
return getFieldCreate()->deserialize(buffer, this);