From 7d3d0cd0670ad52eedf3c4e92eb4d11ce045fae4 Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Sat, 6 Dec 2014 02:28:54 +0100 Subject: re-use the builder --- client/resourceaccess.cpp | 10 +++++----- client/resourceaccess.h | 3 +++ resource/listener.cpp | 16 ++++++++-------- resource/listener.h | 5 ++++- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/client/resourceaccess.cpp b/client/resourceaccess.cpp index 641c203..6f1e114 100644 --- a/client/resourceaccess.cpp +++ b/client/resourceaccess.cpp @@ -72,11 +72,11 @@ void ResourceAccess::connected() log(QString("Connected: ").arg(m_socket->fullServerName())); { - flatbuffers::FlatBufferBuilder fbb; - auto name = fbb.CreateString(QString::number((long long)this).toLatin1()); - auto command = Akonadi::CreateHandshake(fbb, name); - Akonadi::FinishHandshakeBuffer(fbb, command); - Commands::write(m_socket, Commands::HandshakeCommand, fbb); + auto name = m_fbb.CreateString(QString::number((long long)this).toLatin1()); + auto command = Akonadi::CreateHandshake(m_fbb, name); + Akonadi::FinishHandshakeBuffer(m_fbb, command); + Commands::write(m_socket, Commands::HandshakeCommand, m_fbb); + m_fbb.Clear(); } emit ready(true); diff --git a/client/resourceaccess.h b/client/resourceaccess.h index 64b8a96..a77fe48 100644 --- a/client/resourceaccess.h +++ b/client/resourceaccess.h @@ -4,6 +4,8 @@ #include #include +#include + class ResourceAccess : public QObject { Q_OBJECT @@ -37,4 +39,5 @@ private: QTimer *m_tryOpenTimer; bool m_startingProcess; QByteArray m_partialMessageBuffer; + flatbuffers::FlatBufferBuilder m_fbb; }; diff --git a/resource/listener.cpp b/resource/listener.cpp index 4b3e4ff..23a5a70 100644 --- a/resource/listener.cpp +++ b/resource/listener.cpp @@ -170,23 +170,23 @@ void Listener::sendCurrentRevision(Client &client) return; } - flatbuffers::FlatBufferBuilder fbb; - auto command = Akonadi::CreateRevisionUpdate(fbb, m_revision); - Akonadi::FinishRevisionUpdateBuffer(fbb, command); - Commands::write(client.socket, Commands::RevisionUpdateCommand, fbb); + auto command = Akonadi::CreateRevisionUpdate(m_fbb, m_revision); + Akonadi::FinishRevisionUpdateBuffer(m_fbb, command); + Commands::write(client.socket, Commands::RevisionUpdateCommand, m_fbb); + m_fbb.Clear(); } void Listener::updateClientsWithRevision() { - flatbuffers::FlatBufferBuilder fbb; - auto command = Akonadi::CreateRevisionUpdate(fbb, m_revision); - Akonadi::FinishRevisionUpdateBuffer(fbb, command); + auto command = Akonadi::CreateRevisionUpdate(m_fbb, m_revision); + Akonadi::FinishRevisionUpdateBuffer(m_fbb, command); for (const Client &client: m_connections) { if (!client.socket || !client.socket->isValid()) { continue; } - Commands::write(client.socket, Commands::RevisionUpdateCommand, fbb); + Commands::write(client.socket, Commands::RevisionUpdateCommand, m_fbb); } + m_fbb.Clear(); } diff --git a/resource/listener.h b/resource/listener.h index 0d8f388..dcc3818 100644 --- a/resource/listener.h +++ b/resource/listener.h @@ -5,6 +5,8 @@ #include #include +#include + class Client { public: @@ -57,4 +59,5 @@ private: QLocalServer *m_server; QVector m_connections; unsigned long long m_revision; -}; \ No newline at end of file + flatbuffers::FlatBufferBuilder m_fbb; +}; -- cgit v1.2.3