projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add a method to find data files in standard directories (such as $PREFIX/share)
[quassel.git]
/
src
/
common
/
signalproxy.h
diff --git
a/src/common/signalproxy.h
b/src/common/signalproxy.h
index
584626e
..
bac48db
100644
(file)
--- a/
src/common/signalproxy.h
+++ b/
src/common/signalproxy.h
@@
-1,5
+1,5
@@
/***************************************************************************
/***************************************************************************
- * Copyright (C) 2005-0
8
by the Quassel Project *
+ * Copyright (C) 2005-0
9
by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
@@
-31,7
+31,6
@@
#include <QByteArray>
#include <QTimer>
#include <QByteArray>
#include <QTimer>
-class SignalRelay;
class SyncableObject;
struct QMetaObject;
class SyncableObject;
struct QMetaObject;
@@
-42,6
+41,10
@@
class SignalProxy : public QObject {
class IODevicePeer;
class SignalProxyPeer;
class IODevicePeer;
class SignalProxyPeer;
+ class Relay;
+ class SignalRelay;
+ class SyncRelay;
+
public:
enum ProxyMode {
Server,
public:
enum ProxyMode {
Server,
@@
-85,13
+88,6
@@
public:
void synchronize(SyncableObject *obj);
void synchronize(SyncableObject *obj);
-// void setInitialized(SyncableObject *obj);
-// bool isInitialized(SyncableObject *obj) const;
- void detachObject(QObject *obj);
- void detachSignals(QObject *sender);
- void detachSlots(QObject *receiver);
- void stopSync(SyncableObject *obj);
-
//! Writes a QVariant to a device.
/** The data item is prefixed with the resulting blocksize,
* so the corresponding function readDataFromDevice() can check if enough data is available
//! Writes a QVariant to a device.
/** The data item is prefixed with the resulting blocksize,
* so the corresponding function readDataFromDevice() can check if enough data is available
@@
-106,18
+102,25
@@
public:
static bool readDataFromDevice(QIODevice *dev, quint32 &blockSize, QVariant &item, bool compressed = false);
class ExtendedMetaObject;
static bool readDataFromDevice(QIODevice *dev, quint32 &blockSize, QVariant &item, bool compressed = false);
class ExtendedMetaObject;
- ExtendedMetaObject *extendedMetaObject(const QObject *obj) const;
- void createExtendedMetaObject(const QObject *obj);
+ ExtendedMetaObject *extendedMetaObject(const QMetaObject *meta) const;
+ ExtendedMetaObject *createExtendedMetaObject(const QMetaObject *meta);
+ inline ExtendedMetaObject *extendedMetaObject(const QObject *obj) const { return extendedMetaObject(metaObject(obj)); }
+ inline ExtendedMetaObject *createExtendedMetaObject(const QObject *obj) { return createExtendedMetaObject(metaObject(obj)); }
bool isSecure() const { return _secure; }
void dumpProxyStats();
bool isSecure() const { return _secure; }
void dumpProxyStats();
+public slots:
+ void detachObject(QObject *obj);
+ void detachSignals(QObject *sender);
+ void detachSlots(QObject *receiver);
+ void stopSync(QObject *obj);
+
protected:
void customEvent(QEvent *event);
private slots:
void dataAvailable();
protected:
void customEvent(QEvent *event);
private slots:
void dataAvailable();
- void detachSender();
void removePeerBySender();
void objectRenamed(const QString &newname, const QString &oldname);
void objectRenamed(const QByteArray &classname, const QString &newname, const QString &oldname);
void removePeerBySender();
void objectRenamed(const QString &newname, const QString &oldname);
void objectRenamed(const QByteArray &classname, const QString &newname, const QString &oldname);
@@
-178,8
+181,10
@@
private:
// containg a list of argtypes for fast access
QHash<const QMetaObject *, ExtendedMetaObject *> _extendedMetaObjects;
// containg a list of argtypes for fast access
QHash<const QMetaObject *, ExtendedMetaObject *> _extendedMetaObjects;
- // we use one SignalRelay per QObject
- QHash<QObject*, SignalRelay *> _relayHash;
+ // SignalRelay for all manually attached signals
+ SignalRelay *_signalRelay;
+ // one SyncRelay per class
+ QHash<const QMetaObject *, SyncRelay *> _syncRelays;
// RPC function -> (object, slot ID)
typedef QPair<QObject*, int> MethodId;
// RPC function -> (object, slot ID)
typedef QPair<QObject*, int> MethodId;
@@
-215,6
+220,8
@@
public:
const QHash<int, int> &receiveMap();
int updatedRemotelyId();
const QHash<int, int> &receiveMap();
int updatedRemotelyId();
+ const QMetaObject *metaObject() const { return _meta; }
+
static QByteArray methodName(const QMetaMethod &method);
static bool methodsMatch(const QMetaMethod &signal, const QMetaMethod &slot);
static QString methodBaseName(const QMetaMethod &method);
static QByteArray methodName(const QMetaMethod &method);
static bool methodsMatch(const QMetaMethod &signal, const QMetaMethod &slot);
static QString methodBaseName(const QMetaMethod &method);