/* Kopete Groupwise Protocol gwchatrooms.h - Data types for group chat Copyright (c) 2005 SUSE Linux AG http://www.suse.com Kopete (c) 2002-2005 by the Kopete developers ************************************************************************* * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2 of the License, or (at your option) any later version. * * * ************************************************************************* */ #include #include #ifndef GROUPWISE_CHATROOMS_H #define GROUPWISE_CHATROOMS_H namespace GroupWise { class ChatContact { public: TQString dn; uint chatRights; }; typedef TQValueList ChatContactList; struct ChatroomSearchResult { TQString name; TQString ownerDN; uint participants; }; class Chatroom { public: enum UserStatus { Participating, NotParticipating }; enum Rights { Read = 1, Write = 2, Modify = 4, Moderator = 8, Owner = 16 }; TQString creatorDN; TQString description; TQString disclaimer; TQString displayName; TQString objectId; TQString ownerDN; TQString query; TQString topic; bool archive; uint maxUsers; uint chatRights; UserStatus userStatus; TQDateTime createdOn; uint participantsCount; // haveParticipants, Acl, Invites indicate if we have obtained these lists from the server, so we can tell 'not fetched list' and 'fetched empty list' apart. bool haveParticipants; ChatContactList participants; bool haveAcl; ChatContactList acl; bool haveInvites; ChatContactList invites; Chatroom() { archive = false; maxUsers = 0; chatRights = 0; participantsCount = 0; haveParticipants = false; haveAcl = false; haveInvites = false; } Chatroom( ChatroomSearchResult csr ) { archive = false; maxUsers = 0; chatRights = 0; participantsCount = csr.participants; haveParticipants = false; haveAcl = false; haveInvites = false; ownerDN = csr.ownerDN; displayName = csr.name; } }; typedef TQValueList ChatroomList; typedef TQMap ChatroomMap; } #endif