KVIrc 5.2.4
Developer APIs
DccBroker.h
Go to the documentation of this file.
1#ifndef _BROKER_H_
2#define _BROKER_H_
3//=============================================================================
4//
5// File : DccBroker.h
6// Creation date : Tue Sep 19 09 2000 10:20:01 by Szymon Stefanek
7//
8// This file is part of the KVIrc IRC client distribution
9// Copyright (C) 2000-2010 Szymon Stefanek (pragma at kvirc dot net)
10//
11// This program is FREE software. You can redistribute it and/or
12// modify it under the terms of the GNU General Public License
13// as published by the Free Software Foundation; either version 2
14// of the License, or (at your option) any later version.
15//
16// This program is distributed in the HOPE that it will be USEFUL,
17// but WITHOUT ANY WARRANTY; without even the implied warranty of
18// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19// See the GNU General Public License for more details.
20//
21// You should have received a copy of the GNU General Public License
22// along with this program. If not, write to the Free Software Foundation,
23// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
24//
25//=============================================================================
26
27#include "DccDescriptor.h"
28
29#include "kvi_settings.h"
30#include "KviCString.h"
31#include "KviPointerList.h"
32#include "KviIrcServerParser.h"
33#include "KviPointerHashTable.h"
34
35#include <QDateTime>
36#include <QObject>
37
39class DccBroker;
40class KviWindow;
41class DccDialog;
42
43// #define COMPILE_DCC_CANVAS
44
46{
47public:
48 QDateTime m_tTimestamp;
49 QString m_szTag;
50 unsigned long m_uFileSize; // outgoing file size, valid only for file transfers obviously
51 unsigned long m_uResumePosition; // if 0 = no resume, valid only for file transfers obviously
52};
53
54class DccBroker : public QObject
55{
56 Q_OBJECT
57public:
58 DccBroker();
59 ~DccBroker();
60
61protected:
65
66public:
68 KviDccZeroPortTag * findZeroPortTag(const QString & szTag);
69 void removeZeroPortTag(const QString & szTag);
70
71 unsigned int dccWindowsCount() { return m_pDccWindowList->count(); };
72 unsigned int dccBoxCount();
73
74 void unregisterDccBox(DccDialog * box);
76
77 void rsendManage(DccDescriptor * dcc);
79
81
82#ifdef COMPILE_DCC_CANVAS
83 void activeCanvasManage(DccDescriptor * dcc);
84 void passiveCanvasExecute(DccDescriptor * dcc);
85#endif
86
89
92
93 void recvFileManage(DccDescriptor * dcc);
94 void sendFileManage(DccDescriptor * dcc);
95
96 bool handleResumeAccepted(const char * filename, const char * port, const char * szZeroPortTag);
97 bool handleResumeRequest(KviDccRequest * dcc, const char * filename, const char * port, unsigned long filePos, const char * szZeroPortTag);
98
99public slots:
100 void rsendExecute(DccDialog * box, DccDescriptor * dcc);
101 void rsendExecute(DccDescriptor * dcc);
102
103 // void activeChatExecute(DccDialog * box,DccDescriptor * dcc);
104 void executeChat(DccDialog * box, DccDescriptor * dcc);
105
107 void activeVoiceExecute(DccDialog * box, DccDescriptor * dcc);
108 void activeVideoExecute(DccDialog * box, DccDescriptor * dcc);
109
110 void sendFileExecute(DccDialog * box, DccDescriptor * dcc);
111 void recvFileExecute(DccDialog * box, DccDescriptor * dcc);
112
113 void chooseSaveFileName(DccDialog * box, DccDescriptor * dcc);
115 void renameDccSendFile(DccDialog * box, DccDescriptor * dcc);
116
117 void cancelDcc(DccDialog * box, DccDescriptor * dcc);
118 void cancelDcc(DccDescriptor * dcc);
119
120public:
121 bool canUnload();
122};
123
124#endif
Pointer Hash Table.
C++ Template based double linked pointer list class.
Definition DccBroker.h:55
void activeVideoManage(DccDescriptor *dcc)
Definition DccBroker.cpp:427
KviPointerHashTable< QString, KviDccZeroPortTag > * m_pZeroPortTags
Definition DccBroker.h:64
void unregisterDccWindow(KviWindow *dcc)
Definition DccBroker.cpp:129
void unregisterDccBox(DccDialog *box)
Definition DccBroker.cpp:134
bool handleResumeRequest(KviDccRequest *dcc, const char *filename, const char *port, unsigned long filePos, const char *szZeroPortTag)
Definition DccBroker.cpp:1002
KviDccZeroPortTag * findZeroPortTag(const QString &szTag)
Definition DccBroker.cpp:105
void sendFileManage(DccDescriptor *dcc)
Definition DccBroker.cpp:919
void handleChatRequest(DccDescriptor *dcc)
Definition DccBroker.cpp:286
void sendFileExecute(DccDialog *box, DccDescriptor *dcc)
Definition DccBroker.cpp:955
KviPointerList< KviWindow > * m_pDccWindowList
Definition DccBroker.h:63
KviDccZeroPortTag * addZeroPortTag()
Definition DccBroker.cpp:91
KviPointerList< DccDialog > * m_pBoxList
Definition DccBroker.h:62
void removeZeroPortTag(const QString &szTag)
Definition DccBroker.cpp:119
void activeCanvasExecute(DccDialog *box, DccDescriptor *dcc)
Definition DccBroker.cpp:553
void executeChat(DccDialog *box, DccDescriptor *dcc)
Definition DccBroker.cpp:333
void cancelDcc(DccDialog *box, DccDescriptor *dcc)
Definition DccBroker.cpp:146
unsigned int dccWindowsCount()
Definition DccBroker.h:71
void chooseSaveFileName(DccDialog *box, DccDescriptor *dcc)
Definition DccBroker.cpp:667
void passiveVoiceExecute(DccDescriptor *dcc)
Definition DccBroker.cpp:412
bool handleResumeAccepted(const char *filename, const char *port, const char *szZeroPortTag)
Definition DccBroker.cpp:997
void activeVideoExecute(DccDialog *box, DccDescriptor *dcc)
Definition DccBroker.cpp:454
void renameDccSendFile(DccDialog *box, DccDescriptor *dcc)
Definition DccBroker.cpp:859
unsigned int dccBoxCount()
Definition DccBroker.cpp:124
void rsendAskForFileName(DccDescriptor *dcc)
Definition DccBroker.cpp:168
DccBroker()
Definition DccBroker.cpp:62
void rsendExecute(DccDialog *box, DccDescriptor *dcc)
Definition DccBroker.cpp:275
void passiveVideoExecute(DccDescriptor *dcc)
Definition DccBroker.cpp:484
void activeVoiceExecute(DccDialog *box, DccDescriptor *dcc)
Definition DccBroker.cpp:387
void activeVoiceManage(DccDescriptor *dcc)
Definition DccBroker.cpp:360
void renameOverwriteResume(DccDialog *box, DccDescriptor *dcc)
Definition DccBroker.cpp:766
void rsendManage(DccDescriptor *dcc)
Definition DccBroker.cpp:158
void recvFileManage(DccDescriptor *dcc)
Definition DccBroker.cpp:578
~DccBroker()
Definition DccBroker.cpp:78
void recvFileExecute(DccDialog *box, DccDescriptor *dcc)
Definition DccBroker.cpp:901
bool canUnload()
Definition DccBroker.cpp:987
Definition DccDescriptor.h:34
Definition DccDialog.h:32
Definition KviConsoleWindow.h:74
Definition DccBroker.h:46
unsigned long m_uResumePosition
Definition DccBroker.h:51
QString m_szTag
Definition DccBroker.h:49
QDateTime m_tTimestamp
Definition DccBroker.h:48
unsigned long m_uFileSize
Definition DccBroker.h:50
A fast pointer hash table implementation.
Definition KviPointerHashTable.h:450
A template double linked list of pointers.
Definition KviPointerList.h:371
unsigned int count() const
Returns the count of the items in the list.
Definition KviPointerList.h:620
Base class for all windows in KVIrc.
Definition KviWindow.h:75
This file contains compile time settings.
Definition KviIrcServerParser.h:73