From 7542bb6bd597400167da57dc43dd37ff85a6e173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Wed, 11 Dec 2019 01:41:26 +0100 Subject: kopete: Restore the MSN protocol because a replacement MSN server was created. This reverts commits 0486034738 - 2d5f9c55da and f6fd4ab6c0. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Slávek Banko (cherry picked from commit 73f00336178a9f312bac2992649120d462e0ac2d) --- kopete/protocols/msn/msnswitchboardsocket.h | 167 ++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 kopete/protocols/msn/msnswitchboardsocket.h (limited to 'kopete/protocols/msn/msnswitchboardsocket.h') diff --git a/kopete/protocols/msn/msnswitchboardsocket.h b/kopete/protocols/msn/msnswitchboardsocket.h new file mode 100644 index 00000000..e47ebdfe --- /dev/null +++ b/kopete/protocols/msn/msnswitchboardsocket.h @@ -0,0 +1,167 @@ +/* + msnswitchboardsocket.h - switch board connection socket + + Copyright (c) 2002 by Martijn Klingens + Copyright (c) 2002-2006 by Olivier Goffart + Kopete (c) 2002-2005 by the Kopete developers + + Portions of this code are taken from KMerlin, + (c) 2001 by Olaf Lueg + + ************************************************************************* + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ************************************************************************* +*/ + +#ifndef MSNSWITCHBOARDSOCKET_H +#define MSNSWITCHBOARDSOCKET_H + +#include +#include +#include + +#include + +#include "msnsocket.h" + +namespace Kopete { class Message; } +class MSNAccount; +class TQTimer; + +class MSNP2PDisplatcher; +class KTempFile; + +namespace P2P { class Dispatcher; } + +#include "dispatcher.h" + +class KOPETE_EXPORT MSNSwitchBoardSocket : public MSNSocket +{ + Q_OBJECT + + +public: + /** + * Contructor: id is the KopeteMessageMangager's id + */ + MSNSwitchBoardSocket( MSNAccount * account , TQObject *parent); + ~MSNSwitchBoardSocket(); + +private: + P2P::Dispatcher *m_dispatcher; + MSNAccount *m_account; + + TQString m_myHandle; // our handle + + // contains the handle of the last person that msg'ed us. + // since we receive the actual message by readBlock(), we need + // to remember what the handle was of the person sending us the message. + TQString m_msgHandle; + + TQString m_ID; + TQString m_auth; + TQStringList m_chatMembers; + + //used for emoticons + TQValueList m_msgQueue; + unsigned m_recvIcons; + TQMap > m_emoticons; + Kopete::Message &parseCustomEmoticons(Kopete::Message &msg); + TQTimer *m_emoticonTimer; + TQPtrList m_typewrited; + + struct InkMessage{ + TQ_UINT32 chunks; + TQString data; + }; + TQMap m_inkMessageBuffer; + + /** the number of chunk for currents messages */ + unsigned int m_chunks; + + /** true is we already sent the x-clientcaps message */ + bool m_clientcapsSent; + +private: + void DispatchInkMessage(const TQString &base64String); + +protected: + /** + * Handle an MSN command response line. + */ + virtual void parseCommand( const TQString &cmd, uint id, + const TQString &data ); + + /** + * Handle exceptions that might occur during a chat. + */ + virtual void handleError( uint code, uint id ); + + TQString parseFontAttr( TQString str, TQString attr ); + + +public: + void connectToSwitchBoard( TQString ID, TQString address, TQString auth ); + void setHandle( TQString handle ) { m_myHandle = handle; } + void setMsgHandle( TQString handle ) { m_msgHandle = handle; } + + const TQStringList &chatMembers() { return m_chatMembers; } + + void userLeftChat( const TQString &handle , const TQString &reason ); + int sendMsg( const Kopete::Message &msg ); + int sendCustomEmoticon(const TQString &name, const TQString &filename); + + int sendNudge(); + + P2P::Dispatcher* PeerDispatcher(); + +public slots: + void slotCloseSession(); + void slotInviteContact(const TQString &handle); + + /** + * Notify the server that the user is typing a message + */ + void sendTypingMsg( bool isTyping ); + + void requestDisplayPicture(); + + /** workaround Bug 113425 . see slotKeepAliveTimer() **/ + TQTimer *m_keepAlive; + int m_keepAliveNb; + + + +private slots: + void slotOnlineStatusChanged( MSNSocket::OnlineStatus status ); + void slotSocketClosed( ); + void slotReadMessage( const TQByteArray &bytes ); + void slotEmoticonReceived( KTempFile *, const TQString& ); + void slotIncomingFileTransfer(const TQString& from, const TQString& fileName, TQ_INT64 fileSize); + void cleanQueue(); + + /** workaround Bug 113425 . see comment inside the function **/ + void slotKeepAliveTimer(); + +signals: + void msgReceived( Kopete::Message &msg ); + void receivedTypingMsg( const TQString &contactId, bool isTyping ); + void msgAcknowledgement(unsigned int, bool); + void userJoined(const TQString& handle , const TQString &publicName , bool IRO); + void userLeft(const TQString& handle , const TQString &reason); + void nudgeReceived(const TQString &handle); + + void switchBoardClosed( ); + void invitation(const TQString& handle, const TQString& msg); + +}; + +#endif + +// vim: set noet ts=4 sts=4 sw=4: + -- cgit v1.2.1