Files
logos-cpp-sdk/cpp/implementations/qt_remote/remote_transport.h
Iuri MatiasandLogos Workspace 4197ee1830 Finish Abstraction & Refactor (Ongoing) - part 1 (#25)
* 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>
2026-03-23 11:45:25 -04:00

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