making signalproxy direct connection thread safe
[quassel.git] / src / common / network.h
index 3759e56..dbc5f35 100644 (file)
@@ -48,6 +48,7 @@ class Network : public SyncableObject {
   Q_PROPERTY(QString networkName READ networkName WRITE setNetworkName STORED false)
   Q_PROPERTY(QString currentServer READ currentServer WRITE setCurrentServer STORED false)
   Q_PROPERTY(QString myNick READ myNick WRITE setMyNick STORED false)
+  Q_PROPERTY(int latency READ latency WRITE setLatency STORED false)
   Q_PROPERTY(QByteArray codecForServer READ codecForServer WRITE setCodecForServer STORED false)
   Q_PROPERTY(QByteArray codecForEncoding READ codecForEncoding WRITE setCodecForEncoding STORED false)
   Q_PROPERTY(QByteArray codecForDecoding READ codecForDecoding WRITE setCodecForDecoding STORED false)
@@ -87,7 +88,7 @@ public:
     D_CHANMODE = 0x08
   };
 
-  
+
   Network(const NetworkId &networkid, QObject *parent = 0);
   ~Network();
 
@@ -112,10 +113,11 @@ public:
 
   ChannelModeType channelModeType(const QString &mode);
   inline ChannelModeType channelModeType(const QCharRef &mode) { return channelModeType(QString(mode)); }
-  
+
   inline const QString &networkName() const { return _networkName; }
   inline const QString &currentServer() const { return _currentServer; }
   inline const QString &myNick() const { return _myNick; }
+  inline int latency() const { return _latency; }
   inline IrcUser *me() const { return ircUser(myNick()); }
   inline IdentityId identity() const { return _identity; }
   QStringList nicks() const;
@@ -181,6 +183,7 @@ public slots:
   //void setConnectionState(Network::ConnectionState state);
   void setConnectionState(int state);
   void setMyNick(const QString &mynick);
+  void setLatency(int latency);
   void setIdentity(IdentityId);
 
   void setServerList(const QVariantList &serverList);
@@ -210,15 +213,17 @@ public slots:
   //init geters
   QVariantMap initSupports() const;
   inline QVariantList initServerList() const { return serverList(); }
-  QStringList initIrcUsers() const;
-  QStringList initIrcChannels() const;
-  
+  virtual QVariantMap initIrcUsersAndChannels() const;
+//   QStringList initIrcUsers() const;
+//   QStringList initIrcChannels() const;
+
   //init seters
   void initSetSupports(const QVariantMap &supports);
   inline void initSetServerList(const QVariantList &serverList) { setServerList(serverList); }
-  void initSetIrcUsers(const QStringList &hostmasks);
-  void initSetIrcChannels(const QStringList &channels);
-  
+  virtual void initSetIrcUsersAndChannels(const QVariantMap &usersAndChannels);
+//   void initSetIrcUsers(const QStringList &hostmasks);
+//   void initSetIrcChannels(const QStringList &channels);
+
   IrcUser *updateNickFromMask(const QString &mask);
 
   // these slots are to keep the hashlists of all users and the
@@ -227,6 +232,7 @@ public slots:
 
   virtual inline void requestConnect() const { emit connectRequested(); }
   virtual inline void requestDisconnect() const { emit disconnectRequested(); }
+  virtual inline void requestSetNetworkInfo(const NetworkInfo &info) { emit setNetworkInfoRequested(info); }
 
   void emitConnectionError(const QString &);
 
@@ -248,6 +254,7 @@ signals:
   void connectionStateSet(int);
   void connectionError(const QString &errorMsg);
   void myNickSet(const QString &mynick);
+  void latencySet(int latency);
   void identitySet(IdentityId);
 
   void serverListSet(QVariantList serverList);
@@ -286,6 +293,7 @@ signals:
 
   void connectRequested(NetworkId id = 0) const;
   void disconnectRequested(NetworkId id = 0) const;
+  void setNetworkInfoRequested(const NetworkInfo &) const;
 
 private:
   QPointer<SignalProxy> _proxy;
@@ -294,6 +302,7 @@ private:
   IdentityId _identity;
 
   QString _myNick;
+  int _latency;
   QString _networkName;
   QString _currentServer;
   bool _connected;
@@ -366,6 +375,6 @@ QDataStream &operator<<(QDataStream &out, const NetworkInfo &info);
 QDataStream &operator>>(QDataStream &in, NetworkInfo &info);
 QDebug operator<<(QDebug dbg, const NetworkInfo &i);
 
-Q_DECLARE_METATYPE(NetworkInfo);
+Q_DECLARE_METATYPE(NetworkInfo)
 
 #endif