mirror of
https://github.com/logos-co/logos-cpp-sdk.git
synced 2026-08-31 09:41:06 +00:00
* refactor: abstract connection/transport; and clearly separate qt remote obj and qt local into separate implementations * abstract qt remote registry * add mock implementation; these serves to further test the abstraction but also useful for testing modules later * use LogosObject instead of QObject * abstract provider side * updates to use new api * re-add async api back --------- Co-authored-by: Logos Workspace <logos@workspace.local>
43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#ifndef REMOTE_TRANSPORT_H
|
|
#define REMOTE_TRANSPORT_H
|
|
|
|
#include "../../logos_transport.h"
|
|
#include "../../logos_object.h"
|
|
#include <QString>
|
|
|
|
class QRemoteObjectRegistryHost;
|
|
class QRemoteObjectNode;
|
|
|
|
class RemoteTransportHost : public LogosTransportHost {
|
|
public:
|
|
explicit RemoteTransportHost(const QString& registryUrl);
|
|
~RemoteTransportHost() override;
|
|
|
|
bool publishObject(const QString& name, QObject* object) override;
|
|
void unpublishObject(const QString& name) override;
|
|
|
|
private:
|
|
QRemoteObjectRegistryHost* m_registryHost;
|
|
QString m_registryUrl;
|
|
};
|
|
|
|
class RemoteTransportConnection : public LogosTransportConnection {
|
|
public:
|
|
explicit RemoteTransportConnection(const QString& registryUrl);
|
|
~RemoteTransportConnection() override;
|
|
|
|
bool connectToHost() override;
|
|
bool isConnected() const override;
|
|
bool reconnect() override;
|
|
LogosObject* requestObject(const QString& objectName, int timeoutMs) override;
|
|
|
|
private:
|
|
bool connectToRegistry();
|
|
|
|
QRemoteObjectNode* m_node;
|
|
QString m_registryUrl;
|
|
bool m_connected;
|
|
};
|
|
|
|
#endif // REMOTE_TRANSPORT_H
|