/*** Storage access ***/
// These methods are threadsafe.
+ //! Store a user setting persistently
+ /**
+ * \param userId The users Id
+ * \param settingName The Name of the Setting
+ * \param data The Value
+ */
+ static void setUserSetting(UserId userId, const QString &settingName, const QVariant &data);
+
+ //! Retrieve a persistent user setting
+ /**
+ * \param userId The users Id
+ * \param settingName The Name of the Setting
+ * \param default Value to return in case it's unset.
+ * \return the Value of the Setting or the default value if it is unset.
+ */
+ static QVariant getUserSetting(UserId userId, const QString &settingName, const QVariant &data = QVariant());
+
+
//! Create a Network in the Storage and store it's Id in the given NetworkInfo
/** \note This method is thredsafe.
*
*/
static QList<BufferInfo> requestBuffers(UserId user);
+
+ //! Request a list of BufferIds for a given NetworkId
+ /** \note This method is threadsafe.
+ *
+ * \param user The user whose buffers we request
+ * \param networkId The NetworkId of the network in question
+ * \return List of BufferIds belonging to the Network
+ */
+ static QList<BufferId> requestBufferIdsForNetwork(UserId user, NetworkId networkId);
+
//! Remove permanently a buffer and it's content from the storage backend
/** This call cannot be reverted!
* \note This method is threadsafe.
*/
static QHash<BufferId, MsgId> bufferLastSeenMsgIds(UserId user);
+ const QDateTime &startTime() const { return _startTime; }
+
public slots:
//! Make storage data persistent
/** \note This method is threadsafe.
void bufferInfoUpdated(UserId user, const BufferInfo &info);
private slots:
- bool startListening(uint port = Global::defaultPort);
+ bool startListening(uint port = Global::parser.value("port").toUInt());
void stopListening();
void incomingConnection();
void clientHasData();
QHash<QString, Storage *> _storageBackends;
- QDateTime startTime;
+ QDateTime _startTime;
bool configured;