diff options
| author | Brett Stottlemyer <bstottle@ford.com> | 2020-07-06 09:44:24 -0400 |
|---|---|---|
| committer | Sona Kurazyan <sona.kurazyan@qt.io> | 2021-05-27 16:45:06 +0200 |
| commit | d319c417b4bb85d67fb0c5d7a6bc7e5bb4d2be55 (patch) | |
| tree | 2917196dc9c7a04e609a24936f0e909cccb5dc4c /src/remoteobjects/qremoteobjectsource.cpp | |
| parent | ba09a7f38921ab8261dfaa186d23e964111d7d5f (diff) | |
Refactor serialization code into an abstracted class
This hides implementation details and allows for different implementations
in the future.
Change-Id: I5502bb040afe502f7b127668cf7ff81ee79f5e89
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Diffstat (limited to 'src/remoteobjects/qremoteobjectsource.cpp')
| -rw-r--r-- | src/remoteobjects/qremoteobjectsource.cpp | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/remoteobjects/qremoteobjectsource.cpp b/src/remoteobjects/qremoteobjectsource.cpp index b6dbf22..1899cc1 100644 --- a/src/remoteobjects/qremoteobjectsource.cpp +++ b/src/remoteobjects/qremoteobjectsource.cpp @@ -388,8 +388,7 @@ void QRemoteObjectSourceBase::handleMetaCall(int index, QMetaObject::Call call, const QMetaProperty mp = target->metaObject()->property(propertyIndex); qCDebug(QT_REMOTEOBJECT) << "Sending Invoke Property" << (m_api->isAdapterSignal(internalIndex) ? "via adapter" : "") << internalIndex << propertyIndex << mp.name() << mp.read(target); - serializePropertyChangePacket(this, index); - d->m_packet.baseAddress = d->m_packet.size; + d->codec->serializePropertyChangePacket(this, index); propertyIndex = internalIndex; } @@ -398,11 +397,9 @@ void QRemoteObjectSourceBase::handleMetaCall(int index, QMetaObject::Call call, << (call == 0 ? QLatin1String("InvokeMetaMethod") : QStringLiteral("Non-invoked call: %d").arg(call)) << m_api->signalSignature(index) << *marshalArgs(index, a); - serializeInvokePacket(d->m_packet, name(), call, index, *marshalArgs(index, a), -1, propertyIndex); - d->m_packet.baseAddress = 0; + d->codec->serializeInvokePacket(name(), call, index, *marshalArgs(index, a), -1, propertyIndex); - for (IoDeviceBase *io : qAsConst(d->m_listeners)) - io->write(d->m_packet.array, d->m_packet.size); + d->codec->send(d->m_listeners); } void QRemoteObjectRootSource::addListener(IoDeviceBase *io, bool dynamic) @@ -412,11 +409,11 @@ void QRemoteObjectRootSource::addListener(IoDeviceBase *io, bool dynamic) if (dynamic) { d->sentTypes.clear(); - serializeInitDynamicPacket(d->m_packet, this); - io->write(d->m_packet.array, d->m_packet.size); + d->codec->serializeInitDynamicPacket(this); + d->codec->send(io); } else { - serializeInitPacket(d->m_packet, this); - io->write(d->m_packet.array, d->m_packet.size); + d->codec->serializeInitPacket(this); + d->codec->send(io); } } @@ -425,8 +422,8 @@ int QRemoteObjectRootSource::removeListener(IoDeviceBase *io, bool shouldSendRem d->m_listeners.removeAll(io); if (shouldSendRemove) { - serializeRemoveObjectPacket(d->m_packet, m_api->name()); - io->write(d->m_packet.array, d->m_packet.size); + d->codec->serializeRemoveObjectPacket(m_api->name()); + d->codec->send(io); } return int(d->m_listeners.length()); } @@ -560,4 +557,9 @@ QByteArrayList DynamicApiMap::methodParameterNames(int index) const return m_cachedMetamethod.parameterNames(); } +QRemoteObjectSourceBase::Private::Private(QRemoteObjectSourceIo *io, QRemoteObjectRootSource *root) + : m_sourceIo(io), codec(io->m_codec.data()), isDynamic(false), root(root) +{ +} + QT_END_NAMESPACE |
