2
Kopete Groupwise Protocol
3
conferencetask.h - Event Handling task responsible for all conference related events
5
Copyright (c) 2004 SUSE Linux AG http://www.suse.com
7
Based on Iris, Copyright (C) 2003 Justin Karneges <justin@affinix.com>
9
Kopete (c) 2002-2004 by the Kopete developers <kopete-devel@kde.org>
11
*************************************************************************
13
* This library is free software; you can redistribute it and/or *
14
* modify it under the terms of the GNU Lesser General Public *
15
* License as published by the Free Software Foundation; either *
16
* version 2 of the License, or (at your option) any later version. *
18
*************************************************************************
21
#ifndef CONFERENCETASK_H
22
#define CONFERENCETASK_H
25
#include "eventtask.h"
26
#include <QtCore/QList>
29
* This Task is responsible for handling all conference related events, and signalling them up to @ref GroupWiseAccount
30
* Implementation note: It would be fit the model more cleanly to have each of these in their own Task, but the amount
31
* of code they share is quite large, and the differences in the way each event uses it are small
35
using namespace GroupWise;
37
class ConferenceTask : public EventTask
41
ConferenceTask( Task* parent );
43
bool take( Transfer * transfer );
45
void typing( const ConferenceEvent & );
46
void notTyping( const ConferenceEvent & );
47
void joined( const ConferenceEvent & );
48
void left( const ConferenceEvent &);
49
void invited( const ConferenceEvent & );
50
void otherInvited( const ConferenceEvent & );
51
void invitationDeclined( const ConferenceEvent & );
52
void closed( const ConferenceEvent & );
53
void message( const ConferenceEvent &);
54
void autoReply( const ConferenceEvent & );
56
void broadcast( const ConferenceEvent &);
57
void systemBroadcast( const ConferenceEvent &);
59
void slotReceiveUserDetails( const GroupWise::ContactDetails & );
61
quint32 readFlags( QDataStream & din );
62
QString readMessage( QDataStream & din );
64
* Checks to see if we need more data from the client before we can propagate this event
65
* and queues the event if so
66
* @return whether the event was queued pending more data
68
bool queueWhileAwaitingData( const ConferenceEvent & event );
69
void dumpConferenceEvent( ConferenceEvent & evt );
71
// A list of events which are waiting for more data from the server before they can be exposed to the client
72
QList< ConferenceEvent > m_pendingEvents;