/*! Client to service communication only used for establishing an object request since the returned proxy is an interface to that object registered on QtDBus. Client communicates directly to QtDBus for method and property access. Signals are automatically relayed from QtDBus to the proxy object. */ ObjectEndPoint::ObjectEndPoint(Type type, QServiceIpcEndPoint* comm, QObject* parent) : QObject(parent), dispatch(comm), service(0), iface(0) { Q_ASSERT(dispatch); d = new ObjectEndPointPrivate; d->parent = this; d->endPointType = type; dispatch->setParent(this); connect(dispatch, SIGNAL(readyRead()), this, SLOT(newPackageReady())); if (type == Client) { // client waiting for construct proxy and registers DBus custom type qDBusRegisterMetaType<QServiceUserTypeDBus>(); qRegisterMetaType<QServiceUserTypeDBus>(); return; } else { connect(InstanceManager::instance(), SIGNAL(instanceClosed(QRemoteServiceRegister::Entry,QUuid)), this, SLOT(unregisterObjectDBus(QRemoteServiceRegister::Entry,QUuid))); if (dispatch->packageAvailable()) QTimer::singleShot(0, this, SLOT(newPackageReady())); } }
ObjectEndPoint::ObjectEndPoint(Type type, QServiceIpcEndPoint* comm, QObject* parent) : QObject(parent), dispatch(comm), service(0) #ifdef Q_OS_SYMBIAN , referenceCnt(0) #endif //End Q_OS_SYMBIAN { #ifdef QT_SFW_ENDPOINT_DEBUG qDebug() << "inside ObjectEndPoint::ObjectEndPoint "; #endif Q_ASSERT(dispatch); d = new ObjectEndPointPrivate; d->parent = this; d->endPointType = type; dispatch->setParent(this); connect(dispatch, SIGNAL(readyRead()), this, SLOT(newPackageReady()), Qt::QueuedConnection); connect(dispatch, SIGNAL(disconnected()), this, SLOT(disconnected()), Qt::QueuedConnection); if (type == Client) { return; //we are waiting for conctructProxy() call } else { if (dispatch->packageAvailable()) QTimer::singleShot(0, this, SLOT(newPackageReady())); } }