SyncableObject(QObject *parent = 0);
SyncableObject(const QString &objectName, QObject *parent = 0);
SyncableObject(const SyncableObject &other, QObject *parent = 0);
+ ~SyncableObject();
//! Stores the object's state into a QVariantMap.
/** The default implementation takes dynamic properties as well as getters that have
virtual void update(const QVariantMap &properties);
protected:
- void sync_call__(SignalProxy::ProxyMode modeType, const char *funcname, ...);
+ void sync_call__(SignalProxy::ProxyMode modeType, const char *funcname, ...) const;
void renameObject(const QString &newName);
SyncableObject &operator=(const SyncableObject &other);
signals:
void initDone();
void updatedRemotely();
- void updated(const QVariantMap &properties);
- void updateRequested(const QVariantMap &properties);
- void objectRenamed(QString newName, QString oldName);
+ void updated();
private:
void synchronize(SignalProxy *proxy);
+ void stopSynchronize(SignalProxy *proxy);
bool setInitValue(const QString &property, const QVariant &value);
# define REQUEST(...) sync_call__(SignalProxy::Client, __func__, __VA_ARGS__);
#endif //Q_WS_WIN
+#define SYNC_OTHER(x, ...) sync_call__(SignalProxy::Server, #x, __VA_ARGS__);
+#define REQUEST_OTHER(x, ...) sync_call__(SignalProxy::Client, #x, __VA_ARGS__);
+
#define ARG(x) const_cast<void *>(reinterpret_cast<const void*>(&x))
#define NO_ARG 0