summaryrefslogtreecommitdiffstats
path: root/src/remoteobjects/qremoteobjectsource.cpp
diff options
context:
space:
mode:
authorBrett Stottlemyer <bstottle@ford.com>2020-07-06 09:44:24 -0400
committerSona Kurazyan <sona.kurazyan@qt.io>2021-05-27 16:45:06 +0200
commitd319c417b4bb85d67fb0c5d7a6bc7e5bb4d2be55 (patch)
tree2917196dc9c7a04e609a24936f0e909cccb5dc4c /src/remoteobjects/qremoteobjectsource.cpp
parentba09a7f38921ab8261dfaa186d23e964111d7d5f (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.cpp26
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