/*
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 < kopete - devel @ kde . org >
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* 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 <tqdatetime.h>
# include <tqvaluelist.h>
# ifndef GROUPWISE_CHATROOMS_H
# define GROUPWISE_CHATROOMS_H
namespace GroupWise
{
class ChatContact
{
public :
TQString dn ;
uint chatRights ;
} ;
typedef TQValueList < GroupWise : : ChatContact > 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 < Chatroom > ChatroomList ;
typedef TQMap < TQString , Chatroom > ChatroomMap ;
}
# endif