libqutim 0.2.80.1
|
00001 /**************************************************************************** 00002 ** 00003 ** qutIM - instant messenger 00004 ** 00005 ** Copyright © 2011 Ruslan Nigmatullin <euroelessar@yandex.ru> 00006 ** 00007 ***************************************************************************** 00008 ** 00009 ** $QUTIM_BEGIN_LICENSE$ 00010 ** This program is free software: you can redistribute it and/or modify 00011 ** it under the terms of the GNU General Public License as published by 00012 ** the Free Software Foundation, either version 3 of the License, or 00013 ** (at your option) any later version. 00014 ** 00015 ** This program is distributed in the hope that it will be useful, 00016 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00018 ** See the GNU General Public License for more details. 00019 ** 00020 ** You should have received a copy of the GNU General Public License 00021 ** along with this program. If not, see http://www.gnu.org/licenses/. 00022 ** $QUTIM_END_LICENSE$ 00023 ** 00024 ****************************************************************************/ 00025 #ifndef GROUPCHATMANAGER_H 00026 #define GROUPCHATMANAGER_H 00027 00028 #include "libqutim_global.h" 00029 00030 namespace qutim_sdk_0_3 00031 { 00032 00033 class DataItem; 00034 class Protocol; 00035 class Account; 00036 class GroupChatManagerPrivate; 00037 00038 class LIBQUTIM_EXPORT GroupChatManager 00039 { 00040 public: 00044 GroupChatManager(Account *account); 00048 virtual ~GroupChatManager(); 00052 Account *account() const; 00056 virtual DataItem fields() const = 0; 00060 virtual bool join(const DataItem &fields) = 0; 00066 virtual bool storeBookmark(const DataItem &fields, const DataItem &oldFields) = 0; 00072 virtual bool removeBookmark(const DataItem &fields) = 0; 00076 virtual QList<DataItem> bookmarks() const = 0; 00080 virtual QList<DataItem> recent() const = 0; 00086 static QList<GroupChatManager*> allManagers(); 00087 private: 00088 QScopedPointer<GroupChatManagerPrivate> d; 00089 }; 00090 00091 } 00092 00093 Q_DECLARE_INTERFACE(qutim_sdk_0_3::GroupChatManager, "org.qutim.core.GroupChatManager"); 00094 00095 #endif // GROUPCHATMANAGER_H 00096