#include <QtCore>
#include "types.h"
+#include "coreidentity.h"
#include "message.h"
#include "network.h"
* \return the Value of the Setting or the default value if it is unset.
*/
virtual QVariant getUserSetting(UserId userId, const QString &settingName, const QVariant &data = QVariant()) = 0;
+
+ /* Identity handling */
+ virtual IdentityId createIdentity(UserId user, CoreIdentity &identity) = 0;
+ virtual bool updateIdentity(UserId user, const CoreIdentity &identity) = 0;
+ virtual void removeIdentity(UserId user, IdentityId identityId) = 0;
+ virtual QList<CoreIdentity> identities(UserId user) = 0;
/* Network handling */
* \param networkId The network id
* \param type The type of the buffer (StatusBuffer, Channel, etc.)
* \param buffer The buffer name (if empty, the net's status buffer is returned)
+ * \param create Whether or not the buffer should be created if it doesnt exist
* \return The BufferInfo corresponding to the given network and buffer name, or an invalid BufferInfo if not found
*/
- virtual BufferInfo getBufferInfo(UserId user, const NetworkId &networkId, BufferInfo::Type type, const QString &buffer = "") = 0;
+ virtual BufferInfo bufferInfo(UserId user, const NetworkId &networkId, BufferInfo::Type type, const QString &buffer = "", bool create = true) = 0;
//! Get the unique BufferInfo for a bufferId
/** \param user The core user who owns this buffername
*/
virtual bool removeBuffer(const UserId &user, const BufferId &bufferId) = 0;
+
//! Rename a Buffer
- /** \param user The id of the buffer owner
- * \param networkId The id of the network the buffer belongs to
+ /** \note This method is threadsafe.
+ * \param user The id of the buffer owner
+ * \param bufferId The bufferId
* \param newName The new name of the buffer
- * \param oldName The previous name of the buffer
- * \return the BufferId of the affected buffer or an invalid BufferId if not successfull
+ * \return true if successfull
*/
- virtual BufferId renameBuffer(const UserId &user, const NetworkId &networkId, const QString &newName, const QString &oldName) = 0;
-
+ virtual bool renameBuffer(const UserId &user, const BufferId &bufferId, const QString &newName) = 0;
+
+ //! Merge the content of two Buffers permanently. This cannot be reversed!
+ /** \note This method is threadsafe.
+ * \param user The id of the buffer owner
+ * \param bufferId1 The bufferId of the remaining buffer
+ * \param bufferId2 The buffer that is about to be removed
+ * \return true if successfull
+ */
+ virtual bool mergeBuffersPermanently(const UserId &user, const BufferId &bufferId1, const BufferId &bufferId2) = 0;
+
//! Update the LastSeenDate for a Buffer
/** This Method is used to make the LastSeenDate of a Buffer persistent
* \param user The Owner of that Buffer