MemoryTransferService: Separate functions to serialize and get serialization size

Bug: dawn:156
Change-Id: I19317954c64700bdd67aa414d8eb2422d2c3544d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/9860
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
This commit is contained in:
Austin Eng
2019-08-09 00:03:20 +00:00
committed by Commit Bot service account
parent 42e1bba480
commit a9658d967a
11 changed files with 105 additions and 55 deletions

View File

@@ -76,9 +76,11 @@ namespace dawn_wire {
class DAWN_WIRE_EXPORT ReadHandle {
public:
// Get the required serialization size for SerializeCreate
virtual size_t SerializeCreateSize() = 0;
// Serialize the handle into |serializePointer| so it can be received by the server.
// If |serializePointer| is nullptr, this returns the required serialization space.
virtual size_t SerializeCreate(void* serializePointer = nullptr) = 0;
virtual void SerializeCreate(void* serializePointer) = 0;
// Load initial data and open the handle for reading.
// This function takes in the serialized result of
@@ -95,19 +97,24 @@ namespace dawn_wire {
class DAWN_WIRE_EXPORT WriteHandle {
public:
// Get the required serialization size for SerializeCreate
virtual size_t SerializeCreateSize() = 0;
// Serialize the handle into |serializePointer| so it can be received by the server.
// If |serializePointer| is nullptr, this returns the required serialization space.
virtual size_t SerializeCreate(void* serializePointer = nullptr) = 0;
virtual void SerializeCreate(void* serializePointer) = 0;
// Open the handle for reading. The data returned should be zero-initialized.
// The data returned must live at least until the WriteHandle is destructed.
// On failure, the pointer returned should be null.
virtual std::pair<void*, size_t> Open() = 0;
// Get the required serialization size for SerializeFlush
virtual size_t SerializeFlushSize() = 0;
// Flush writes to the handle. This should serialize info to send updates to the
// server.
// If |serializePointer| is nullptr, this returns the required serialization space.
virtual size_t SerializeFlush(void* serializePointer = nullptr) = 0;
virtual void SerializeFlush(void* serializePointer) = 0;
virtual ~WriteHandle();
};
};

View File

@@ -65,12 +65,14 @@ namespace dawn_wire {
class DAWN_WIRE_EXPORT ReadHandle {
public:
// Get the required serialization size for SerializeInitialData
virtual size_t SerializeInitialDataSize(const void* data, size_t dataLength) = 0;
// Initialize the handle data.
// Serialize into |serializePointer| so the client can update handle data.
// If |serializePointer| is nullptr, this returns the required serialization space.
virtual size_t SerializeInitialData(const void* data,
size_t dataLength,
void* serializePointer = nullptr) = 0;
virtual void SerializeInitialData(const void* data,
size_t dataLength,
void* serializePointer) = 0;
virtual ~ReadHandle();
};