/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-09 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* \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