summaryrefslogtreecommitdiff
path: root/protocols/JabberG/jabber_rc.h
diff options
context:
space:
mode:
authorVadim Dashevskiy <watcherhd@gmail.com>2012-10-12 14:53:57 +0000
committerVadim Dashevskiy <watcherhd@gmail.com>2012-10-12 14:53:57 +0000
commit3b55a62fdcb1f8222de3c2c8fbed530792c419a0 (patch)
tree5b2f628e847f61bb3e16f95ecaed6e187963362f /protocols/JabberG/jabber_rc.h
parent1f9c986d82657f965462d289bf94aa012cf026fc (diff)
GTalkExt, ICQ, IRC, Jabber: folders restructurization
git-svn-id: http://svn.miranda-ng.org/main/trunk@1890 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/JabberG/jabber_rc.h')
-rw-r--r--protocols/JabberG/jabber_rc.h314
1 files changed, 0 insertions, 314 deletions
diff --git a/protocols/JabberG/jabber_rc.h b/protocols/JabberG/jabber_rc.h
deleted file mode 100644
index cb3bf1b9cc..0000000000
--- a/protocols/JabberG/jabber_rc.h
+++ /dev/null
@@ -1,314 +0,0 @@
-/*
-
-Jabber Protocol Plugin for Miranda IM
-Copyright ( C ) 2002-04 Santithorn Bunchua
-Copyright ( C ) 2005-12 George Hazan
-Copyright ( C ) 2007 Maxim Mluhov
-
-XEP-0146 support for Miranda IM
-
-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.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-*/
-
-#ifndef _JABBER_RC_H_
-#define _JABBER_RC_H_
-
-class CJabberAdhocSession;
-
-#define JABBER_ADHOC_HANDLER_STATUS_EXECUTING 1
-#define JABBER_ADHOC_HANDLER_STATUS_COMPLETED 2
-#define JABBER_ADHOC_HANDLER_STATUS_CANCEL 3
-#define JABBER_ADHOC_HANDLER_STATUS_REMOVE_SESSION 4
-typedef int ( CJabberProto::*JABBER_ADHOC_HANDLER )( HXML iqNode, CJabberIqInfo* pInfo, CJabberAdhocSession* pSession );
-
-// 5 minutes to fill out form :)
-#define JABBER_ADHOC_SESSION_EXPIRE_TIME 300000
-
-class CJabberAdhocSession
-{
-protected:
- CMString m_szSessionId;
- CJabberAdhocSession* m_pNext;
- DWORD m_dwStartTime;
-
- void* m_pUserData;
- BOOL m_bAutofreeUserData;
-
- DWORD m_dwStage;
-public:
- CJabberProto* ppro;
- CJabberAdhocSession( CJabberProto* global );
- ~CJabberAdhocSession()
- {
- if ( m_bAutofreeUserData && m_pUserData )
- mir_free( m_pUserData );
- if ( m_pNext )
- delete m_pNext;
- }
- CJabberAdhocSession* GetNext()
- {
- return m_pNext;
- }
- CJabberAdhocSession* SetNext( CJabberAdhocSession *pNext )
- {
- CJabberAdhocSession *pRetVal = m_pNext;
- m_pNext = pNext;
- return pRetVal;
- }
- DWORD GetSessionStartTime()
- {
- return m_dwStartTime;
- }
- LPCTSTR GetSessionId()
- {
- return m_szSessionId;
- }
- BOOL SetUserData( void* pUserData, BOOL bAutofree = FALSE )
- {
- if ( m_bAutofreeUserData && m_pUserData )
- mir_free( m_pUserData );
- m_pUserData = pUserData;
- m_bAutofreeUserData = bAutofree;
- return TRUE;
- }
- DWORD SetStage( DWORD dwStage )
- {
- DWORD dwRetVal = m_dwStage;
- m_dwStage = dwStage;
- return dwRetVal;
- }
- DWORD GetStage()
- {
- return m_dwStage;
- }
-};
-
-class CJabberAdhocNode;
-class CJabberAdhocNode
-{
-protected:
- TCHAR* m_szJid;
- TCHAR* m_szNode;
- TCHAR* m_szName;
- CJabberAdhocNode* m_pNext;
- JABBER_ADHOC_HANDLER m_pHandler;
- CJabberProto* m_pProto;
-public:
- CJabberAdhocNode( CJabberProto* pProto, TCHAR* szJid, TCHAR* szNode, TCHAR* szName, JABBER_ADHOC_HANDLER pHandler )
- {
- ZeroMemory( this, sizeof( CJabberAdhocNode ));
- replaceStrT( m_szJid, szJid );
- replaceStrT( m_szNode, szNode );
- replaceStrT( m_szName, szName );
- m_pHandler = pHandler;
- m_pProto = pProto;
- }
- ~CJabberAdhocNode()
- {
- if ( m_szJid)
- mir_free( m_szJid );
- if ( m_szNode )
- mir_free( m_szNode );
- if ( m_szName )
- mir_free( m_szName );
- if ( m_pNext )
- delete m_pNext;
- }
- CJabberAdhocNode* GetNext()
- {
- return m_pNext;
- }
- CJabberAdhocNode* SetNext( CJabberAdhocNode *pNext )
- {
- CJabberAdhocNode *pRetVal = m_pNext;
- m_pNext = pNext;
- return pRetVal;
- }
- TCHAR* GetJid()
- {
- return m_szJid;
- }
- TCHAR* GetNode()
- {
- return m_szNode;
- }
- TCHAR* GetName()
- {
- return m_szName;
- }
- BOOL CallHandler( HXML iqNode, CJabberIqInfo* pInfo, CJabberAdhocSession* pSession )
- {
- if ( m_pHandler == NULL )
- return FALSE;
- return (m_pProto->*m_pHandler)( iqNode, pInfo, pSession );
- }
-};
-
-class CJabberAdhocManager
-{
-protected:
- CJabberProto* m_pProto;
- CJabberAdhocNode* m_pNodes;
- CJabberAdhocSession* m_pSessions;
- CRITICAL_SECTION m_cs;
-
- CJabberAdhocSession* FindSession( const TCHAR* szSession )
- {
- CJabberAdhocSession* pSession = m_pSessions;
- while ( pSession ) {
- if ( !_tcscmp( pSession->GetSessionId(), szSession ))
- return pSession;
- pSession = pSession->GetNext();
- }
- return NULL;
- }
-
- CJabberAdhocSession* AddNewSession()
- {
- CJabberAdhocSession* pSession = new CJabberAdhocSession( m_pProto );
- if ( !pSession )
- return NULL;
-
- pSession->SetNext( m_pSessions );
- m_pSessions = pSession;
-
- return pSession;
- }
-
- CJabberAdhocNode* FindNode( const TCHAR* szNode )
- {
- CJabberAdhocNode* pNode = m_pNodes;
- while ( pNode ) {
- if ( !_tcscmp( pNode->GetNode(), szNode ))
- return pNode;
- pNode = pNode->GetNext();
- }
- return NULL;
- }
-
- BOOL RemoveSession( CJabberAdhocSession* pSession )
- {
- if ( !m_pSessions )
- return FALSE;
-
- if ( pSession == m_pSessions ) {
- m_pSessions = m_pSessions->GetNext();
- pSession->SetNext( NULL );
- delete pSession;
- return TRUE;
- }
-
- CJabberAdhocSession* pTmp = m_pSessions;
- while ( pTmp->GetNext()) {
- if ( pTmp->GetNext() == pSession ) {
- pTmp->SetNext( pSession->GetNext());
- pSession->SetNext( NULL );
- delete pSession;
- return TRUE;
- }
- pTmp = pTmp->GetNext();
- }
- return FALSE;
- }
-
- BOOL _ExpireSession( DWORD dwExpireTime )
- {
- if ( !m_pSessions )
- return FALSE;
-
- CJabberAdhocSession* pSession = m_pSessions;
- if ( pSession->GetSessionStartTime() < dwExpireTime ) {
- m_pSessions = pSession->GetNext();
- pSession->SetNext( NULL );
- delete pSession;
- return TRUE;
- }
-
- while ( pSession->GetNext()) {
- if ( pSession->GetNext()->GetSessionStartTime() < dwExpireTime ) {
- CJabberAdhocSession* pRetVal = pSession->GetNext();
- pSession->SetNext( pSession->GetNext()->GetNext());
- pRetVal->SetNext( NULL );
- delete pRetVal;
- return TRUE;
- }
- pSession = pSession->GetNext();
- }
- return FALSE;
- }
-
-public:
- CJabberAdhocManager( CJabberProto* pProto )
- {
- ZeroMemory( this, sizeof( CJabberAdhocManager ));
- m_pProto = pProto;
- InitializeCriticalSection( &m_cs );
- }
- ~CJabberAdhocManager()
- {
- if ( m_pNodes )
- delete m_pNodes;
- if ( m_pSessions )
- delete m_pSessions;
- DeleteCriticalSection( &m_cs );
- }
- void Lock()
- {
- EnterCriticalSection( &m_cs );
- }
- void Unlock()
- {
- LeaveCriticalSection( &m_cs );
- }
- BOOL FillDefaultNodes();
- BOOL AddNode( TCHAR* szJid, TCHAR* szNode, TCHAR* szName, JABBER_ADHOC_HANDLER pHandler )
- {
- CJabberAdhocNode* pNode = new CJabberAdhocNode( m_pProto, szJid, szNode, szName, pHandler );
- if ( !pNode )
- return FALSE;
-
- Lock();
- if ( !m_pNodes )
- m_pNodes = pNode;
- else {
- CJabberAdhocNode* pTmp = m_pNodes;
- while ( pTmp->GetNext())
- pTmp = pTmp->GetNext();
- pTmp->SetNext( pNode );
- }
- Unlock();
-
- return TRUE;
- }
- CJabberAdhocNode* GetFirstNode()
- {
- return m_pNodes;
- }
- BOOL HandleItemsRequest( HXML iqNode, CJabberIqInfo* pInfo, const TCHAR* szNode );
- BOOL HandleInfoRequest( HXML iqNode, CJabberIqInfo* pInfo, const TCHAR* szNode );
- BOOL HandleCommandRequest( HXML iqNode, CJabberIqInfo* pInfo, const TCHAR* szNode );
-
- BOOL ExpireSessions()
- {
- Lock();
- DWORD dwExpireTime = GetTickCount() - JABBER_ADHOC_SESSION_EXPIRE_TIME;
- while ( _ExpireSession( dwExpireTime ));
- Unlock();
- return TRUE;
- }
-};
-
-#endif //_JABBER_RC_H_