From bcb704366cb5e333a626c18c308c7e0448a8e69f Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdenetwork@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- .../groupwise/libgroupwise/tasks/conferencetask.h | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 kopete/protocols/groupwise/libgroupwise/tasks/conferencetask.h (limited to 'kopete/protocols/groupwise/libgroupwise/tasks/conferencetask.h') diff --git a/kopete/protocols/groupwise/libgroupwise/tasks/conferencetask.h b/kopete/protocols/groupwise/libgroupwise/tasks/conferencetask.h new file mode 100644 index 00000000..42f4fc2b --- /dev/null +++ b/kopete/protocols/groupwise/libgroupwise/tasks/conferencetask.h @@ -0,0 +1,74 @@ +/* + Kopete Groupwise Protocol + conferencetask.h - Event Handling task responsible for all conference related events + + Copyright (c) 2004 SUSE Linux AG http://www.suse.com + + Based on Iris, Copyright (C) 2003 Justin Karneges + + Kopete (c) 2002-2004 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. * + * * + ************************************************************************* +*/ + +#ifndef CONFERENCETASK_H +#define CONFERENCETASK_H + +#include "gwerror.h" +#include "eventtask.h" + +/** + * This Task is responsible for handling all conference related events, and signalling them up to @ref GroupWiseAccount + * Implementation note: It would be fit the model more cleanly to have each of these in their own Task, but the amount + * of code they share is quite large, and the differences in the way each event uses it are small + * @author SUSE AG + */ + +using namespace GroupWise; + +class ConferenceTask : public EventTask +{ +Q_OBJECT +public: + ConferenceTask( Task* parent ); + ~ConferenceTask(); + bool take( Transfer * transfer ); +signals: + void typing( const ConferenceEvent & ); + void notTyping( const ConferenceEvent & ); + void joined( const ConferenceEvent & ); + void left( const ConferenceEvent &); + void invited( const ConferenceEvent & ); + void otherInvited( const ConferenceEvent & ); + void invitationDeclined( const ConferenceEvent & ); + void closed( const ConferenceEvent & ); + void message( const ConferenceEvent &); + void autoReply( const ConferenceEvent & ); + // GW7 + void broadcast( const ConferenceEvent &); + void systemBroadcast( const ConferenceEvent &); +protected slots: + void slotReceiveUserDetails( const GroupWise::ContactDetails & ); +protected: + Q_UINT32 readFlags( QDataStream & din ); + QString readMessage( QDataStream & din ); + /** + * Checks to see if we need more data from the client before we can propagate this event + * and queues the event if so + * @return whether the event was queued pending more data + */ + bool queueWhileAwaitingData( const ConferenceEvent & event ); + void dumpConferenceEvent( ConferenceEvent & evt ); +private: + // A list of events which are waiting for more data from the server before they can be exposed to the client + QValueList< ConferenceEvent > m_pendingEvents; +}; + +#endif -- cgit v1.2.1