#include "message.h"
+class BufferSyncer;
class Identity;
class NetworkConnection;
class Network;
//! Create a network and propagate the changes to the clients.
/** \param info The network's settings.
*/
- void createNetwork(const NetworkInfo &info, bool useId = false);
+ void createNetwork(const NetworkInfo &info);
//! Update a network and propagate the changes to the clients.
/** \param info The updated network settings.
*/
void removeNetwork(NetworkId network);
+ //! Remove a buffer and it's backlog permanently
+ /** \param bufferId The id of the buffer to be removed.
+ * emits bufferRemoved(bufferId) on success.
+ */
+ void removeBufferRequested(BufferId bufferId);
+
signals:
void initialized();
void networkCreated(NetworkId);
void networkRemoved(NetworkId);
+ void bufferRemoved(BufferId);
private slots:
void recvStatusMsgFromServer(QString msg);
- void recvMessageFromServer(Message::Type, QString target, QString text, QString sender = "", quint8 flags = Message::None);
+ void recvMessageFromServer(Message::Type, BufferInfo::Type, QString target, QString text, QString sender = "", quint8 flags = Message::None);
void networkConnected(NetworkId networkid);
void networkDisconnected(NetworkId networkid);
+ void destroyNetwork(NetworkId);
+
//! Called when storage updated a BufferInfo.
/** This emits bufferInfoUpdated() via SignalProxy, iff it's one of our buffers.
* \param user The buffer's owner (not necessarily us)
*/
void updateBufferInfo(UserId user, const BufferInfo &bufferInfo);
+ void storeBufferLastSeen(BufferId buffer, const QDateTime &lastSeen);
+
void scriptRequest(QString script);
private:
SignalProxy *_signalProxy;
QHash<NetworkId, NetworkConnection *> _connections;
QHash<NetworkId, Network *> _networks;
+ QHash<NetworkId, Network *> _networksToRemove;
QHash<IdentityId, Identity *> _identities;
+ BufferSyncer *_bufferSyncer;
+
QScriptEngine *scriptEngine;
};