summaryrefslogtreecommitdiffstats
path: root/src/jsonpipe.cpp
diff options
context:
space:
mode:
authorAlexei Rousskikh <ext-alexei.rousskikh@nokia.com>2012-03-19 12:27:04 -0400
committerChris Craig <ext-chris.craig@nokia.com>2012-03-23 19:51:15 +0100
commitcc4e1a955a9566b1a2f66d47f0ca05a0926dc98e (patch)
treeeb78be8e33c812a46a26687516b33c2bb57c075e /src/jsonpipe.cpp
parent76131f514514b85baeb47a7e0bf133ad3092c565 (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.cpp18
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.
*/