From 5fbb9c7a5e927ad7cd3f3f14593104855499101a Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Tue, 16 Dec 2014 12:05:54 +0100 Subject: support writing commands without buffers and with pre-allocated buffers --- common/commands.cpp | 18 ++++++++++++++++++ common/commands.h | 3 +++ 2 files changed, 21 insertions(+) diff --git a/common/commands.cpp b/common/commands.cpp index abed8b9..ecbbfdb 100644 --- a/common/commands.cpp +++ b/common/commands.cpp @@ -28,6 +28,24 @@ namespace Akonadi2 namespace Commands { +void write(QIODevice *device, int commandId) +{ + write(device, commandId, 0, 0); +} + +void write(QIODevice *device, int commandId, const char *buffer, uint size) +{ + if (size > 0 && !buffer) { + size = 0; + } + + device->write((const char*)&commandId, sizeof(int)); + device->write((const char*)&size, sizeof(uint)); + if (buffer) { + device->write(buffer, size); + } +} + void write(QIODevice *device, int commandId, flatbuffers::FlatBufferBuilder &fbb) { const int dataSize = fbb.GetSize(); diff --git a/common/commands.h b/common/commands.h index 0a2452f..2e84a2f 100644 --- a/common/commands.h +++ b/common/commands.h @@ -35,9 +35,12 @@ enum CommandIds { UnknownCommand = 0, HandshakeCommand, RevisionUpdateCommand, + SynchronizeCommand, CustomCommand = 0xffff }; +void AKONADI2COMMON_EXPORT write(QIODevice *device, int commandId); +void AKONADI2COMMON_EXPORT write(QIODevice *device, int commandId, const char *buffer, uint size); void AKONADI2COMMON_EXPORT write(QIODevice *device, int commandId, flatbuffers::FlatBufferBuilder &fbb); } -- cgit v1.2.3