diff options
author | Alexei Rousskikh <ext-alexei.rousskikh@nokia.com> | 2012-03-19 12:27:04 -0400 |
---|---|---|
committer | Chris Craig <ext-chris.craig@nokia.com> | 2012-03-23 19:51:15 +0100 |
commit | cc4e1a955a9566b1a2f66d47f0ca05a0926dc98e (patch) | |
tree | eb78be8e33c812a46a26687516b33c2bb57c075e /src/jsonpipe.cpp | |
parent | 76131f514514b85baeb47a7e0bf133ad3092c565 (diff) |
JsonStream & JsonBuffer API redesign
The JsonStream API has been redesigned to support more control over
the size of read and write buffers. In addition, the API for
notification and reading of new messages has been changed to a more
QIODevice-like flavor (readyReadMessage(), messageAvailable(),
and readMessage()).
Change-Id: I90104713c0cf785db86c2ff716f91c0bd8bb22a0
Reviewed-by: Alexei Rousskikh <ext-alexei.rousskikh@nokia.com>
Reviewed-by: Chris Craig <ext-chris.craig@nokia.com>
Diffstat (limited to 'src/jsonpipe.cpp')
-rw-r--r-- | src/jsonpipe.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/jsonpipe.cpp b/src/jsonpipe.cpp index 981a25e..18c8f46 100644 --- a/src/jsonpipe.cpp +++ b/src/jsonpipe.cpp @@ -107,8 +107,7 @@ JsonPipe::JsonPipe(QObject *parent) { Q_D(JsonPipe); d->mInBuffer = new JsonBuffer(this); - connect(d->mInBuffer, SIGNAL(objectReceived(const QJsonObject&)), - SLOT(objectReceived(const QJsonObject&))); + connect(d->mInBuffer, SIGNAL(readyReadMessage()), SLOT(processMessages())); } /*! @@ -278,6 +277,21 @@ void JsonPipe::objectReceived(const QJsonObject& object) } /*! + \internal +*/ +void JsonPipe::processMessages() +{ + Q_D(JsonPipe); + d->mInBuffer->setEnabled(false); + while (d->mInBuffer->messageAvailable()) { + QJsonObject obj = d->mInBuffer->readMessage(); + if (!obj.isEmpty()) + objectReceived(obj); + } + d->mInBuffer->setEnabled(true); +} + +/*! Return the current JsonPipe::EncodingFormat. */ |