29 #ifndef GAMMARAY_ENDPOINT_H
30 #define GAMMARAY_ENDPOINT_H
32 #include "gammaray_common_export.h"
35 #include <QMetaMethod>
53 class GAMMARAY_COMMON_EXPORT
Endpoint :
public QObject
60 static void send(
const Message &msg);
63 static bool isConnected();
65 static quint16 defaultPort();
66 static quint16 broadcastPort();
69 Protocol::ObjectAddress objectAddress(
const QString &objectName)
const;
77 virtual Protocol::ObjectAddress registerObject(
const QString &name, QObject *
object);
88 virtual void invokeObject(
const QString &objectName,
const char *method,
const QVariantList &args = QVariantList())
const;
95 void waitForMessagesWritten();
100 QString label()
const;
105 void setLabel(
const QString &label);
110 virtual bool isRemoteClient()
const = 0;
116 virtual QUrl serverAddress()
const = 0;
121 virtual void registerMessageHandler(Protocol::ObjectAddress objectAddress, QObject *receiver,
const char* messageHandlerName);
124 virtual void unregisterMessageHandler(Protocol::ObjectAddress objectAddress);
128 void sendMessage(
const GammaRay::Message &msg);
135 void objectRegistered(
const QString &objectName, Protocol::ObjectAddress objectAddress);
136 void objectUnregistered(
const QString &objectName, Protocol::ObjectAddress objectAddress);
141 void setDevice(QIODevice* device);
144 Protocol::ObjectAddress endpointAddress()
const;
149 virtual void messageReceived(
const Message &msg) = 0;
152 void addObjectNameAddressMapping(
const QString &objectName, Protocol::ObjectAddress objectAddress);
154 void removeObjectNameAddressMapping(
const QString& objectName);
157 virtual void handlerDestroyed(Protocol::ObjectAddress objectAddress,
const QString &objectName) = 0;
160 virtual void objectDestroyed(Protocol::ObjectAddress objectAddress,
const QString &objectName, QObject *
object) = 0;
163 void dispatchMessage(
const GammaRay::Message& msg);
166 QVector<QPair<Protocol::ObjectAddress, QString> > objectAddresses()
const;
176 void invokeObjectLocal(QObject *
object,
const char *method,
const QVariantList &args)
const;
178 PropertySyncer *m_propertySyncer;
182 void connectionClosed();
183 void handlerDestroyed(QObject* obj);
184 void objectDestroyed(QObject* obj);
190 : address(Protocol::InvalidObjectAddress)
196 Protocol::ObjectAddress address;
202 QMetaMethod messageHandler;
206 void insertObjectInfo(ObjectInfo *oi);
208 void removeObjectInfo(ObjectInfo *oi);
210 QHash<QString, ObjectInfo*> m_nameMap;
211 QHash<Protocol::ObjectAddress, ObjectInfo*> m_addressMap;
212 QHash<QObject*, ObjectInfo*> m_objectMap;
213 QMultiHash<QObject*, ObjectInfo*> m_handlerMap;
215 QPointer<QIODevice> m_socket;
216 Protocol::ObjectAddress m_myAddress;
223 #endif // GAMMARAY_ENDPOINT_H
static Endpoint * s_instance
Definition: endpoint.h:169
Definition: endpoint.h:42
Network protocol endpoint.
Definition: endpoint.h:53