~ubuntu-branches/debian/sid/libdc0/sid

« back to all changes in this revision

Viewing changes to dclib/dcobject.h

  • Committer: Bazaar Package Importer
  • Author(s): Pasi Savilaakso
  • Date: 2004-06-05 23:01:37 UTC
  • Revision ID: james.westby@ubuntu.com-20040605230137-2ty5g6rcfyguk4et
Tags: upstream-0.3.2
Import upstream version 0.3.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************
 
2
                          dcobject.h  -  description
 
3
                             -------------------
 
4
    begin                : Fri Feb 22 2002
 
5
    copyright            : (C) 2002-2003 by Mathias K�ster
 
6
    email                : mathen@users.berlios.de
 
7
 ***************************************************************************/
 
8
 
 
9
/***************************************************************************
 
10
 *                                                                         *
 
11
 *   This program is free software; you can redistribute it and/or modify  *
 
12
 *   it under the terms of the GNU General Public License as published by  *
 
13
 *   the Free Software Foundation; either version 2 of the License, or     *
 
14
 *   (at your option) any later version.                                   *
 
15
 *                                                                         *
 
16
 ***************************************************************************/
 
17
 
 
18
#ifndef _DCOBJECT_H_
 
19
#define _DCOBJECT_H_
 
20
 
 
21
/**
 
22
  *@author Mathias K�ster
 
23
  */
 
24
 
 
25
#include <time.h>
 
26
 
 
27
#include <dclib/dcos.h>
 
28
#include <dclib/core/cobject.h>
 
29
#include <dclib/core/types.h>
 
30
#include <dclib/core/cstring.h>
 
31
#include <dclib/core/clist.h>
 
32
#include <dclib/core/types.h>
 
33
 
 
34
#define DC_USER_FILELIST_HE3    "MyList.DcLst"
 
35
#define DC_USER_FILELIST        DC_USER_FILELIST_HE3
 
36
#define DC_USER_FILELIST_BZ     "MyList.bz2"
 
37
#define DC_USER_FILELIST_XML    "files.xml.bz2"
 
38
 
 
39
#ifdef WIN32
 
40
template class DLL_EXPORT CList<CString>;
 
41
#endif
 
42
 
 
43
typedef enum eDCMessage {
 
44
        DC_MESSAGE_PARSE_ERROR=0,
 
45
 
 
46
        DC_MESSAGE_CONNECTION_STATE,    // internal con. state
 
47
        DC_MESSAGE_TRANSFER,            // transfer state
 
48
 
 
49
        DC_MESSAGE_UNKNOWN,
 
50
 
 
51
        // direct connect proto
 
52
        DC_MESSAGE_LOCK,
 
53
        DC_MESSAGE_HELLO,
 
54
        DC_MESSAGE_HUBNAME,
 
55
        DC_MESSAGE_CHAT,
 
56
        DC_MESSAGE_MYINFO,
 
57
        DC_MESSAGE_QUIT,
 
58
        DC_MESSAGE_NICKLIST,            // 10
 
59
        DC_MESSAGE_OPLIST,
 
60
        DC_MESSAGE_CONNECTTOME,
 
61
        DC_MESSAGE_KEY,
 
62
        DC_MESSAGE_PRIVATECHAT,
 
63
        DC_MESSAGE_SEARCH,
 
64
        DC_MESSAGE_REVCONNECTTOME,
 
65
        DC_MESSAGE_SEARCHRESULT,
 
66
        DC_MESSAGE_FORCEMOVE,
 
67
        DC_MESSAGE_MYNICK,              // connect to me
 
68
        DC_MESSAGE_DIRECTION,           // 20 connect to me
 
69
        DC_MESSAGE_MAXEDOUT,
 
70
        DC_MESSAGE_FILELENGTH,
 
71
        DC_MESSAGE_ERROR,               // file not found ...
 
72
        DC_MESSAGE_GET,
 
73
        DC_MESSAGE_GETLISTLEN,
 
74
        DC_MESSAGE_VALIDATEDENIDE,
 
75
        DC_MESSAGE_GETINFO,
 
76
        DC_MESSAGE_AGE,
 
77
        DC_MESSAGE_HUBISFULL,
 
78
        DC_MESSAGE_LISTLEN,             // 30
 
79
        DC_MESSAGE_SEND,
 
80
        DC_MESSAGE_PING,
 
81
        DC_MESSAGE_GETPASS,             // user need a password
 
82
        DC_MESSAGE_BADPASS,             // wrong password
 
83
        DC_MESSAGE_LOGEDIN,             // admin
 
84
        DC_MESSAGE_CANCEL,              // cancel a transfer
 
85
        DC_MESSAGE_CANCELED,            // the transfer is canceled
 
86
        DC_MESSAGE_SUPPORTS,
 
87
        DC_MESSAGE_CAPABILITIES,
 
88
 
 
89
        // download manager types
 
90
        DC_MESSAGE_FILE_OBJECT,         // 40
 
91
        DC_MESSAGE_TRANSFER_OBJECT,
 
92
        DC_MESSAGE_FILELIST_OBJECT,
 
93
        DC_MESSAGE_SLOT_OBJECT,
 
94
        DC_MESSAGE_LOG,
 
95
        DC_MESSAGE_DM_INFO,
 
96
 
 
97
        // search manager types
 
98
        DC_MESSAGE_SEARCH_FILE,
 
99
        DC_MESSAGE_SEARCH_USER,
 
100
        DC_MESSAGE_SEARCHRESULT_USER,
 
101
 
 
102
        // file manager
 
103
        DC_MESSAGE_FM_INFO,
 
104
 
 
105
        // traffic control
 
106
        DC_MESSAGE_TRAFFIC,
 
107
        // file transferrate
 
108
        DC_MESSAGE_FILE_TRANSFER_RATE,
 
109
        DC_MESSAGE_GETHUBLIST,
 
110
        DC_MESSAGE_CONNECT_CLIENT,
 
111
 
 
112
        // verlihub extension
 
113
        DC_MESSAGE_HUB_TOPIC,
 
114
 
 
115
        // nmdc
 
116
        DC_MESSAGE_GET_NET_INFO,
 
117
        // user command
 
118
        DC_MESSAGE_USER_COMMAND
 
119
};
 
120
 
 
121
#define EDONKEY_HASH_BLOCK_SIZE 9728000
 
122
 
 
123
class DLL_EXPORT CDCMessage : public CObject {
 
124
public:
 
125
        /** */
 
126
        CDCMessage( eDCMessage type = DC_MESSAGE_UNKNOWN ) {
 
127
                m_eType = type;
 
128
        };
 
129
        /** */
 
130
        virtual ~CDCMessage() {};
 
131
 
 
132
        /** */
 
133
        CDCMessage & operator = (const CDCMessage & p)
 
134
        {
 
135
                m_eType = p.m_eType;
 
136
 
 
137
                return *this;
 
138
        };
 
139
 
 
140
        /** */
 
141
        eDCMessage m_eType;
 
142
};
 
143
 
 
144
class DLL_EXPORT CMessagePing : public CDCMessage {
 
145
public:
 
146
        /** */
 
147
        CMessagePing() : CDCMessage(DC_MESSAGE_PING) {};
 
148
        /** */
 
149
        virtual ~CMessagePing() {};
 
150
 
 
151
        /** */
 
152
        CMessagePing & operator = (const CMessagePing & p)
 
153
        {
 
154
                (CDCMessage&)*this = (CDCMessage&)p;
 
155
 
 
156
                return *this;
 
157
        };
 
158
};
 
159
 
 
160
class DLL_EXPORT CMessageHubTopic : public CDCMessage {
 
161
public:
 
162
        /** */
 
163
        CMessageHubTopic() : CDCMessage(DC_MESSAGE_HUB_TOPIC) {};
 
164
        /** */
 
165
        virtual ~CMessageHubTopic() {};
 
166
 
 
167
        /** */
 
168
        CMessageHubTopic & operator = (const CMessageHubTopic & p)
 
169
        {
 
170
                (CDCMessage&)*this = (CDCMessage&)p;
 
171
 
 
172
                m_sTopic = p.m_sTopic;
 
173
                return *this;
 
174
        };
 
175
 
 
176
        /** */
 
177
        CString m_sTopic;
 
178
};
 
179
 
 
180
class DLL_EXPORT CMessageGetInfo : public CDCMessage {
 
181
public:
 
182
        /** */
 
183
        CMessageGetInfo() : CDCMessage(DC_MESSAGE_GETINFO) {};
 
184
        /** */
 
185
        virtual ~CMessageGetInfo() {};
 
186
 
 
187
        /** */
 
188
        CMessageGetInfo & operator = (const CMessageGetInfo & p)
 
189
        {
 
190
                (CDCMessage&)*this = (CDCMessage&)p;
 
191
 
 
192
                m_sSrcNick = p.m_sSrcNick;
 
193
                m_sDstNick = p.m_sDstNick;
 
194
 
 
195
                return *this;
 
196
        };
 
197
 
 
198
        /** */
 
199
        CString m_sSrcNick;
 
200
        /** */
 
201
        CString m_sDstNick;
 
202
};
 
203
 
 
204
class DLL_EXPORT CMessageGetNetInfo : public CDCMessage {
 
205
public:
 
206
        /** */
 
207
        CMessageGetNetInfo() : CDCMessage(DC_MESSAGE_GET_NET_INFO) {};
 
208
        /** */
 
209
        virtual ~CMessageGetNetInfo() {};
 
210
 
 
211
        /** */
 
212
        CMessageGetNetInfo & operator = (const CMessageGetNetInfo & p)
 
213
        {
 
214
                (CDCMessage&)*this = (CDCMessage&)p;
 
215
 
 
216
                return *this;
 
217
        };
 
218
};
 
219
 
 
220
class DLL_EXPORT CMessageConnectionState : public CDCMessage {
 
221
public:
 
222
        /** */
 
223
        CMessageConnectionState() : CDCMessage(DC_MESSAGE_CONNECTION_STATE) {
 
224
                m_eState = estNONE;
 
225
        };
 
226
        /** */
 
227
        virtual ~CMessageConnectionState() {};
 
228
 
 
229
        /** */
 
230
        CMessageConnectionState & operator = (const CMessageConnectionState & p)
 
231
        {
 
232
                (CDCMessage&)*this = (CDCMessage&)p;
 
233
 
 
234
                m_eState   = p.m_eState;
 
235
                m_sMessage = p.m_sMessage;
 
236
 
 
237
                return *this;
 
238
        };
 
239
 
 
240
        /** */
 
241
        eConnectionState m_eState;
 
242
        /** */
 
243
        CString m_sMessage;
 
244
};
 
245
 
 
246
class DLL_EXPORT CMessageTransfer : public CDCMessage {
 
247
public:
 
248
        /** */
 
249
        CMessageTransfer() : CDCMessage(DC_MESSAGE_TRANSFER) {
 
250
                m_eDirection  = edNONE;
 
251
                m_nTransfered = 0;
 
252
                m_nLength     = 0;
 
253
        };
 
254
        /** */
 
255
        virtual ~CMessageTransfer() {};
 
256
 
 
257
        /** */
 
258
        CMessageTransfer & operator = (const CMessageTransfer & p)
 
259
        {
 
260
                (CDCMessage&)*this = (CDCMessage&)p;
 
261
 
 
262
                m_eDirection  = p.m_eDirection;
 
263
                m_nTransfered = p.m_nTransfered;
 
264
                m_nLength     = p.m_nLength;
 
265
 
 
266
                return *this;
 
267
        };
 
268
 
 
269
        /** */
 
270
        eDirection m_eDirection;
 
271
        /** */
 
272
        ulonglong m_nTransfered;
 
273
        /** */
 
274
        ulonglong m_nLength;
 
275
};
 
276
 
 
277
class DLL_EXPORT CMessageFileTransferRate : public CDCMessage {
 
278
public:
 
279
        /** */
 
280
        CMessageFileTransferRate() : CDCMessage(DC_MESSAGE_FILE_TRANSFER_RATE) {
 
281
                m_nRate      = 0;
 
282
        };
 
283
        /** */
 
284
        virtual ~CMessageFileTransferRate() {};
 
285
 
 
286
        /** */
 
287
        CMessageFileTransferRate & operator = (const CMessageFileTransferRate & p)
 
288
        {
 
289
                (CDCMessage&)*this = (CDCMessage&)p;
 
290
 
 
291
                m_sLocalFile = p.m_sLocalFile;
 
292
                m_nRate      = p.m_nRate;
 
293
 
 
294
                return *this;
 
295
        };
 
296
 
 
297
        /** */
 
298
        CString m_sLocalFile;
 
299
        /** */
 
300
        ulonglong m_nRate;
 
301
};
 
302
 
 
303
class DLL_EXPORT CMessageSupports : public CDCMessage {
 
304
public:
 
305
        /** */
 
306
        CMessageSupports() : CDCMessage(DC_MESSAGE_SUPPORTS) {
 
307
                m_bBZList    = FALSE;
 
308
                m_bSSL       = FALSE;
 
309
                m_bChunk     = FALSE;
 
310
                m_bMiniSlots = FALSE;
 
311
                m_bXMLBZList = FALSE;
 
312
                m_bZBlock    = FALSE;
 
313
        };
 
314
        /** */
 
315
        virtual ~CMessageSupports() {};
 
316
 
 
317
        /** */
 
318
        CMessageSupports & operator = (const CMessageSupports & p)
 
319
        {
 
320
                (CDCMessage&)*this = (CDCMessage&)p;
 
321
 
 
322
                m_bBZList    = p.m_bBZList;
 
323
                m_bSSL       = p.m_bSSL;
 
324
                m_bChunk     = p.m_bChunk;
 
325
                m_bMiniSlots = p.m_bMiniSlots;
 
326
                m_bXMLBZList = p.m_bXMLBZList;
 
327
                m_bZBlock    = p.m_bZBlock;
 
328
                return *this;
 
329
        };
 
330
 
 
331
        /** */
 
332
        bool m_bBZList;
 
333
        /** */
 
334
        bool m_bSSL;
 
335
        /** */
 
336
        bool m_bChunk;
 
337
        /** */
 
338
        bool m_bMiniSlots;
 
339
        /** */
 
340
        bool m_bXMLBZList;
 
341
        /** */
 
342
        bool m_bZBlock;
 
343
};
 
344
 
 
345
class DLL_EXPORT CMessageCapabilities : public CDCMessage {
 
346
public:
 
347
        /** */
 
348
        CMessageCapabilities() : CDCMessage(DC_MESSAGE_CAPABILITIES) {
 
349
                m_bUniSearch = FALSE;
 
350
                m_bXSearch   = FALSE;
 
351
                m_bMD4x      = FALSE;
 
352
        };
 
353
        /** */
 
354
        virtual ~CMessageCapabilities() {};
 
355
 
 
356
        /** */
 
357
        CMessageCapabilities & operator = (const CMessageCapabilities & p)
 
358
        {
 
359
                (CDCMessage&)*this = (CDCMessage&)p;
 
360
 
 
361
                m_bUniSearch = p.m_bUniSearch;
 
362
                m_bXSearch   = p.m_bXSearch;
 
363
                m_bMD4x      = p.m_bMD4x;
 
364
 
 
365
                return *this;
 
366
        };
 
367
 
 
368
        /** */
 
369
        bool m_bUniSearch;
 
370
        /** */
 
371
        bool m_bXSearch;
 
372
        /** */
 
373
        bool m_bMD4x;
 
374
};
 
375
 
 
376
class DLL_EXPORT CMessageError : public CDCMessage {
 
377
public:
 
378
        /** */
 
379
        CMessageError() : CDCMessage(DC_MESSAGE_ERROR) {};
 
380
        /** */
 
381
        virtual ~CMessageError() {};
 
382
 
 
383
        /** */
 
384
        CMessageError & operator = (const CMessageError & p)
 
385
        {
 
386
                (CDCMessage&)*this = (CDCMessage&)p;
 
387
 
 
388
                m_sError = p.m_sError;
 
389
 
 
390
                return *this;
 
391
        };
 
392
 
 
393
        /** */
 
394
        CString m_sError;
 
395
};
 
396
 
 
397
class DLL_EXPORT CMessageGet : public CDCMessage {
 
398
public:
 
399
        /** */
 
400
        CMessageGet() : CDCMessage(DC_MESSAGE_GET) {
 
401
                m_nPos  = 0;
 
402
                m_nSize = 0;
 
403
        };
 
404
        /** */
 
405
        virtual ~CMessageGet() {};
 
406
 
 
407
        /** */
 
408
        CMessageGet & operator = (const CMessageGet & p)
 
409
        {
 
410
                (CDCMessage&)*this = (CDCMessage&)p;
 
411
 
 
412
                m_sFilename = p.m_sFilename;
 
413
                m_nPos      = p.m_nPos;
 
414
                m_nSize     = p.m_nSize;
 
415
 
 
416
                return *this;
 
417
        };
 
418
 
 
419
        /** */
 
420
        CString m_sFilename;
 
421
        /** */
 
422
        ulonglong m_nPos;
 
423
        /** */
 
424
        ulonglong m_nSize;
 
425
};
 
426
 
 
427
class DLL_EXPORT CMessageGetPass : public CDCMessage {
 
428
public:
 
429
        /** */
 
430
        CMessageGetPass() : CDCMessage(DC_MESSAGE_GETPASS) {};
 
431
        /** */
 
432
        virtual ~CMessageGetPass() {};
 
433
 
 
434
        /** */
 
435
        CMessageGetPass & operator = (const CMessageGetPass & p)
 
436
        {
 
437
                (CDCMessage&)*this = (CDCMessage&)p;
 
438
 
 
439
                return *this;
 
440
        };
 
441
};
 
442
 
 
443
class DLL_EXPORT CMessageCancel : public CDCMessage {
 
444
public:
 
445
        /** */
 
446
        CMessageCancel() : CDCMessage(DC_MESSAGE_CANCEL) {};
 
447
        /** */
 
448
        virtual ~CMessageCancel() {};
 
449
 
 
450
        /** */
 
451
        CMessageCancel & operator = (const CMessageCancel & p)
 
452
        {
 
453
                (CDCMessage&)*this = (CDCMessage&)p;
 
454
 
 
455
                return *this;
 
456
        };
 
457
};
 
458
 
 
459
class DLL_EXPORT CMessageCanceled : public CDCMessage {
 
460
public:
 
461
        /** */
 
462
        CMessageCanceled() : CDCMessage(DC_MESSAGE_CANCELED) {};
 
463
        /** */
 
464
        virtual ~CMessageCanceled() {};
 
465
 
 
466
        /** */
 
467
        CMessageCanceled & operator = (const CMessageCanceled & p)
 
468
        {
 
469
                (CDCMessage&)*this = (CDCMessage&)p;
 
470
 
 
471
                return *this;
 
472
        };
 
473
};
 
474
 
 
475
class DLL_EXPORT CMessageKey : public CDCMessage {
 
476
public:
 
477
        /** */
 
478
        CMessageKey() : CDCMessage(DC_MESSAGE_KEY) {};
 
479
        /** */
 
480
        virtual ~CMessageKey() {};
 
481
 
 
482
        /** */
 
483
        CMessageKey & operator = (const CMessageKey & p)
 
484
        {
 
485
                (CDCMessage&)*this = (CDCMessage&)p;
 
486
 
 
487
                return *this;
 
488
        };
 
489
};
 
490
 
 
491
class DLL_EXPORT CMessageBadPass : public CDCMessage {
 
492
public:
 
493
        /** */
 
494
        CMessageBadPass() : CDCMessage(DC_MESSAGE_BADPASS) {};
 
495
        /** */
 
496
        virtual ~CMessageBadPass() {};
 
497
 
 
498
        /** */
 
499
        CMessageBadPass & operator = (const CMessageBadPass & p)
 
500
        {
 
501
                (CDCMessage&)*this = (CDCMessage&)p;
 
502
 
 
503
                return *this;
 
504
        };
 
505
};
 
506
 
 
507
class DLL_EXPORT CMessageLogedIn : public CDCMessage {
 
508
public:
 
509
        /** */
 
510
        CMessageLogedIn() : CDCMessage(DC_MESSAGE_LOGEDIN) {};
 
511
        /** */
 
512
        virtual ~CMessageLogedIn() {};
 
513
 
 
514
        /** */
 
515
        CMessageLogedIn & operator = (const CMessageLogedIn & p)
 
516
        {
 
517
                (CDCMessage&)*this = (CDCMessage&)p;
 
518
 
 
519
                m_sNick = p.m_sNick;
 
520
 
 
521
                return *this;
 
522
        };
 
523
 
 
524
        /** */
 
525
        CString m_sNick;
 
526
};
 
527
 
 
528
class DLL_EXPORT CMessageSend : public CDCMessage {
 
529
public:
 
530
        /** */
 
531
        CMessageSend() : CDCMessage(DC_MESSAGE_SEND) {};
 
532
        /** */
 
533
        virtual ~CMessageSend() {};
 
534
 
 
535
        /** */
 
536
        CMessageSend & operator = (const CMessageSend & p)
 
537
        {
 
538
                (CDCMessage&)*this = (CDCMessage&)p;
 
539
 
 
540
                return *this;
 
541
        };
 
542
};
 
543
 
 
544
class DLL_EXPORT CMessageValidateDenide : public CDCMessage {
 
545
public:
 
546
        /** */
 
547
        CMessageValidateDenide() : CDCMessage(DC_MESSAGE_VALIDATEDENIDE) {};
 
548
        /** */
 
549
        virtual ~CMessageValidateDenide() {};
 
550
 
 
551
        /** */
 
552
        CMessageValidateDenide & operator = (const CMessageValidateDenide & p)
 
553
        {
 
554
                (CDCMessage&)*this = (CDCMessage&)p;
 
555
 
 
556
                return *this;
 
557
        };
 
558
};
 
559
 
 
560
class DLL_EXPORT CMessageHubIsFull : public CDCMessage {
 
561
public:
 
562
        /** */
 
563
        CMessageHubIsFull() : CDCMessage(DC_MESSAGE_HUBISFULL) {};
 
564
        /** */
 
565
        virtual ~CMessageHubIsFull() {};
 
566
 
 
567
        /** */
 
568
        CMessageHubIsFull & operator = (const CMessageHubIsFull & p)
 
569
        {
 
570
                (CDCMessage&)*this = (CDCMessage&)p;
 
571
 
 
572
                return *this;
 
573
        };
 
574
};
 
575
 
 
576
class DLL_EXPORT CMessageMaxedOut : public CDCMessage {
 
577
public:
 
578
        /** */
 
579
        CMessageMaxedOut() : CDCMessage(DC_MESSAGE_MAXEDOUT) {};
 
580
        /** */
 
581
        virtual ~CMessageMaxedOut() {};
 
582
 
 
583
        /** */
 
584
        CMessageMaxedOut & operator = (const CMessageMaxedOut & p)
 
585
        {
 
586
                (CDCMessage&)*this = (CDCMessage&)p;
 
587
 
 
588
                return *this;
 
589
        };
 
590
};
 
591
 
 
592
class DLL_EXPORT CMessageGetListLen : public CDCMessage {
 
593
public:
 
594
        /** */
 
595
        CMessageGetListLen() : CDCMessage(DC_MESSAGE_GETLISTLEN) {};
 
596
        /** */
 
597
        virtual ~CMessageGetListLen() {};
 
598
 
 
599
        /** */
 
600
        CMessageGetListLen & operator = (const CMessageGetListLen & p)
 
601
        {
 
602
                (CDCMessage&)*this = (CDCMessage&)p;
 
603
 
 
604
                return *this;
 
605
        };
 
606
};
 
607
 
 
608
class DLL_EXPORT CMessageLock : public CDCMessage {
 
609
public:
 
610
        /** */
 
611
        CMessageLock() : CDCMessage(DC_MESSAGE_LOCK) {
 
612
                m_eClientVersion = eucvNONE;
 
613
                m_bExtProtocol   = FALSE;
 
614
                m_nVersionMajor  = 0;
 
615
                m_nVersionMinor  = 0;
 
616
                m_nVersionPatch  = 0;
 
617
        };
 
618
        /** */
 
619
        virtual ~CMessageLock() {};
 
620
 
 
621
        /** */
 
622
        CMessageLock & operator = (const CMessageLock & p)
 
623
        {
 
624
                (CDCMessage&)*this = (CDCMessage&)p;
 
625
 
 
626
                m_sPK            = p.m_sPK;
 
627
                m_sData          = p.m_sData;
 
628
                m_eClientVersion = p.m_eClientVersion;
 
629
                m_sVersionString = p.m_sVersionString;
 
630
                m_nVersionMajor  = p.m_nVersionMajor;
 
631
                m_nVersionMinor  = p.m_nVersionMinor;
 
632
                m_nVersionPatch  = p.m_nVersionPatch;
 
633
                m_bExtProtocol   = p.m_bExtProtocol;
 
634
 
 
635
                return *this;
 
636
        };
 
637
 
 
638
        /** */
 
639
        CString m_sPK;
 
640
        /** */
 
641
        CString m_sData;
 
642
        /** */
 
643
        eUserClientVersion m_eClientVersion;
 
644
        /** */
 
645
        CString m_sVersionString;
 
646
        /** */
 
647
        int m_nVersionMajor;
 
648
        /** */
 
649
        int m_nVersionMinor;
 
650
        /** */
 
651
        int m_nVersionPatch;
 
652
        /** */
 
653
        bool m_bExtProtocol;
 
654
};
 
655
 
 
656
class DLL_EXPORT CMessageFileLength : public CDCMessage {
 
657
public:
 
658
        /** */
 
659
        CMessageFileLength() : CDCMessage(DC_MESSAGE_FILELENGTH) {
 
660
                m_nFileLength = 0;
 
661
        };
 
662
        /** */
 
663
        virtual ~CMessageFileLength() {};
 
664
 
 
665
        /** */
 
666
        CMessageFileLength & operator = (const CMessageFileLength & p)
 
667
        {
 
668
                (CDCMessage&)*this = (CDCMessage&)p;
 
669
 
 
670
                m_nFileLength = p.m_nFileLength;
 
671
 
 
672
                return *this;
 
673
        };
 
674
 
 
675
        /** */
 
676
        ulonglong m_nFileLength;
 
677
};
 
678
 
 
679
class DLL_EXPORT CMessageDirection : public CDCMessage {
 
680
public:
 
681
        /** */
 
682
        CMessageDirection() : CDCMessage(DC_MESSAGE_DIRECTION) {
 
683
                m_nLevel     = 0;
 
684
                m_eDirection = edNONE;
 
685
        };
 
686
        /** */
 
687
        virtual ~CMessageDirection() {};
 
688
 
 
689
        /** */
 
690
        CMessageDirection & operator = (const CMessageDirection & p)
 
691
        {
 
692
                (CDCMessage&)*this = (CDCMessage&)p;
 
693
 
 
694
                m_eDirection = p.m_eDirection;
 
695
                m_nLevel     = p.m_nLevel;
 
696
 
 
697
                return *this;
 
698
        };
 
699
 
 
700
        /** */
 
701
        eDirection m_eDirection;
 
702
        /** */
 
703
        int m_nLevel;
 
704
};
 
705
 
 
706
class DLL_EXPORT CMessageNickList : public CDCMessage {
 
707
public:
 
708
        /** */
 
709
        CMessageNickList() : CDCMessage(DC_MESSAGE_NICKLIST) {};
 
710
        /** */
 
711
        virtual ~CMessageNickList() {};
 
712
 
 
713
        CMessageNickList & operator = (const CMessageNickList & p)
 
714
        {
 
715
                (CDCMessage&)*this = (CDCMessage&)p;
 
716
 
 
717
                // TODO: copy list
 
718
 
 
719
                return *this;
 
720
        };
 
721
 
 
722
        /** */
 
723
        CList<CString> m_NickList;
 
724
};
 
725
 
 
726
class DLL_EXPORT CMessageNick : public CDCMessage {
 
727
public:
 
728
        /** */
 
729
        CMessageNick() {};
 
730
        /** */
 
731
        virtual ~CMessageNick() {};
 
732
 
 
733
        CMessageNick & operator = (const CMessageNick & p)
 
734
        {
 
735
                (CDCMessage&)*this = (CDCMessage&)p;
 
736
 
 
737
                m_sNick = p.m_sNick;
 
738
 
 
739
                return *this;
 
740
        };
 
741
 
 
742
        /** */
 
743
        CString m_sNick;
 
744
};
 
745
 
 
746
class DLL_EXPORT CMessageMyNick : public CDCMessage {
 
747
public:
 
748
        /** */
 
749
        CMessageMyNick() : CDCMessage(DC_MESSAGE_MYNICK) {};
 
750
        /** */
 
751
        virtual ~CMessageMyNick() {};
 
752
 
 
753
        CMessageMyNick & operator = (const CMessageMyNick & p)
 
754
        {
 
755
                (CDCMessage&)*this = (CDCMessage&)p;
 
756
 
 
757
                m_sNick = p.m_sNick;
 
758
 
 
759
                return *this;
 
760
        };
 
761
 
 
762
        /** */
 
763
        CString m_sNick;
 
764
};
 
765
 
 
766
class DLL_EXPORT CMessageHello : public CDCMessage {
 
767
public:
 
768
        /** */
 
769
        CMessageHello() : CDCMessage(DC_MESSAGE_HELLO) {};
 
770
        /** */
 
771
        virtual ~CMessageHello() {};
 
772
 
 
773
        CMessageHello & operator = (const CMessageHello & p)
 
774
        {
 
775
                (CDCMessage&)*this = (CDCMessage&)p;
 
776
 
 
777
                m_sNick = p.m_sNick;
 
778
 
 
779
                return *this;
 
780
        };
 
781
 
 
782
        /** */
 
783
        CString m_sNick;
 
784
};
 
785
 
 
786
class DLL_EXPORT CMessageQuit : public CDCMessage {
 
787
public:
 
788
        /** */
 
789
        CMessageQuit() : CDCMessage(DC_MESSAGE_QUIT) {};
 
790
        /** */
 
791
        virtual ~CMessageQuit() {};
 
792
 
 
793
        CMessageQuit & operator = (const CMessageQuit & p)
 
794
        {
 
795
                (CDCMessage&)*this = (CDCMessage&)p;
 
796
 
 
797
                m_sNick = p.m_sNick;
 
798
 
 
799
                return *this;
 
800
        };
 
801
 
 
802
        /** */
 
803
        CString m_sNick;
 
804
};
 
805
 
 
806
class DLL_EXPORT CMessageChat : public CDCMessage {
 
807
public:
 
808
        /** */
 
809
        CMessageChat() : CDCMessage(DC_MESSAGE_CHAT) {};
 
810
        /** */
 
811
        virtual ~CMessageChat() {};
 
812
 
 
813
        CMessageChat & operator = (const CMessageChat & p)
 
814
        {
 
815
                (CDCMessage&)*this = (CDCMessage&)p;
 
816
 
 
817
                m_sNick    = p.m_sNick;
 
818
                m_sMessage = p.m_sMessage;
 
819
 
 
820
                return *this;
 
821
        };
 
822
 
 
823
        /** */
 
824
        CString m_sNick;
 
825
        /** */
 
826
        CString m_sMessage;
 
827
};
 
828
 
 
829
class DLL_EXPORT CMessageMyInfo : public CDCMessage {
 
830
public:
 
831
        /** */
 
832
        CMessageMyInfo() : CDCMessage(DC_MESSAGE_MYINFO) {
 
833
                m_nShared        = 0;
 
834
                m_bOperator      = FALSE;
 
835
                m_eAwayMode      = euamNONE;
 
836
                m_eClientVersion = eucvNONE;
 
837
                m_nFreeSlot      = 0;
 
838
                m_nMaxSlot       = 0;
 
839
                m_eUserSpeed     = eusUNKNOWN;
 
840
                m_eClientMode    = ecmNONE;
 
841
        };
 
842
        /** */
 
843
        virtual ~CMessageMyInfo() {};
 
844
 
 
845
        /** */
 
846
        CMessageMyInfo & operator = (const CMessageMyInfo & p)
 
847
        {
 
848
                (CDCMessage&)*this = (CDCMessage&)p;
 
849
 
 
850
                m_sNick          = p.m_sNick;
 
851
                m_sComment       = p.m_sComment;
 
852
                m_sUnknown       = p.m_sUnknown;
 
853
                m_eUserSpeed     = p.m_eUserSpeed;
 
854
                m_sUserSpeed     = p.m_sUserSpeed;
 
855
                m_sEMail         = p.m_sEMail;
 
856
                m_nShared        = p.m_nShared;
 
857
                m_eAwayMode      = p.m_eAwayMode;
 
858
                m_bOperator      = p.m_bOperator;
 
859
                m_sVerComment    = p.m_sVerComment;
 
860
                m_eClientVersion = p.m_eClientVersion;
 
861
                m_eClientMode    = p.m_eClientMode;
 
862
                m_nFreeSlot      = p.m_nFreeSlot;
 
863
                m_nMaxSlot       = p.m_nMaxSlot;
 
864
                m_sTransferHost  = p.m_sTransferHost;
 
865
                m_MessageLock    = p.m_MessageLock;
 
866
                m_MessageSupports = p.m_MessageSupports;
 
867
 
 
868
                return *this;
 
869
        };
 
870
 
 
871
        /** the nickname */
 
872
        CString m_sNick;
 
873
        /** the comment */
 
874
        CString m_sComment;
 
875
        /** */
 
876
        CString m_sUnknown;
 
877
        /** parsed speed */
 
878
        eUserSpeed m_eUserSpeed;
 
879
        /** the speed string */
 
880
        CString m_sUserSpeed;
 
881
        /** the email */
 
882
        CString m_sEMail;
 
883
        /** sharesize */
 
884
        ulonglong m_nShared;
 
885
        /** away mode */
 
886
        eUserAwayMode m_eAwayMode;
 
887
        /** operator status */
 
888
        bool m_bOperator;
 
889
        /** version */
 
890
        CString m_sVerComment;
 
891
        /** parsed client version */
 
892
        eUserClientVersion m_eClientVersion;
 
893
        /** client mode */
 
894
        eClientMode m_eClientMode;
 
895
        /** free slots */
 
896
        unsigned int m_nFreeSlot;
 
897
        /** max slots */
 
898
        unsigned int m_nMaxSlot;
 
899
        /** */
 
900
        CString m_sTransferHost;
 
901
        /** */
 
902
        CMessageLock m_MessageLock;
 
903
        /** */
 
904
        CMessageSupports m_MessageSupports;
 
905
};
 
906
 
 
907
class DLL_EXPORT CMessageConnectToMe : public CDCMessage {
 
908
public:
 
909
        /** */
 
910
        CMessageConnectToMe() : CDCMessage(DC_MESSAGE_CONNECTTOME) {
 
911
                m_nPort = 0;
 
912
        };
 
913
        /** */
 
914
        virtual ~CMessageConnectToMe() {};
 
915
 
 
916
        CMessageConnectToMe & operator = (const CMessageConnectToMe & p)
 
917
        {
 
918
                (CDCMessage&)*this = (CDCMessage&)p;
 
919
 
 
920
                m_sNick = p.m_sNick;
 
921
                m_sHost = p.m_sHost;
 
922
                m_nPort = p.m_nPort;
 
923
 
 
924
                return *this;
 
925
        };
 
926
 
 
927
        /** */
 
928
        CString m_sNick;
 
929
        /** */
 
930
        CString m_sHost;
 
931
        /** */
 
932
        int m_nPort;
 
933
};
 
934
 
 
935
class DLL_EXPORT CMessageRevConnectToMe : public CDCMessage {
 
936
public:
 
937
        /** */
 
938
        CMessageRevConnectToMe() : CDCMessage(DC_MESSAGE_REVCONNECTTOME) {};
 
939
        /** */
 
940
        virtual ~CMessageRevConnectToMe() {};
 
941
 
 
942
        CMessageRevConnectToMe & operator = (const CMessageRevConnectToMe & p)
 
943
        {
 
944
                (CDCMessage&)*this = (CDCMessage&)p;
 
945
 
 
946
                m_sNick    = p.m_sNick;
 
947
                m_sDstNick = p.m_sDstNick;
 
948
 
 
949
                return *this;
 
950
        };
 
951
 
 
952
        /** */
 
953
        CString m_sNick;
 
954
        /** */
 
955
        CString m_sDstNick;
 
956
};
 
957
 
 
958
class DLL_EXPORT CMessageSearch : public CDCMessage {
 
959
public:
 
960
        /** */
 
961
        CMessageSearch() : CDCMessage(DC_MESSAGE_SEARCH) {
 
962
                m_bLocal      = FALSE;
 
963
                m_nPort       = 0;
 
964
                m_bSizeLimit  = FALSE;
 
965
                m_bSizeAtMost = FALSE;
 
966
                m_nSize       = 0;
 
967
                m_eFileType   = eftUNKNOWN;
 
968
                m_bExtended   = FALSE;
 
969
        };
 
970
        /** */
 
971
        virtual ~CMessageSearch() {};
 
972
 
 
973
        /** */
 
974
        CMessageSearch & operator = (const CMessageSearch & p)
 
975
        {
 
976
                (CDCMessage&)*this = (CDCMessage&)p;
 
977
 
 
978
                m_bLocal      = p.m_bLocal;
 
979
                m_sSource     = p.m_sSource;
 
980
                m_nPort       = p.m_nPort;
 
981
                m_bSizeLimit  = p.m_bSizeLimit;
 
982
                m_bSizeAtMost = p.m_bSizeAtMost;
 
983
                m_nSize       = p.m_nSize;
 
984
                m_eFileType   = p.m_eFileType;
 
985
                m_sString     = p.m_sString;
 
986
                m_bExtended   = p.m_bExtended;
 
987
 
 
988
                return *this;
 
989
        };
 
990
 
 
991
        /** local or global search */
 
992
        bool m_bLocal;
 
993
        /** the source, nick or host */
 
994
        CString m_sSource;
 
995
        /** if source a host, this is the port */
 
996
        int m_nPort;
 
997
        /** search options */
 
998
        bool m_bSizeLimit;
 
999
        /** search options */
 
1000
        bool m_bSizeAtMost;
 
1001
        /** search options */
 
1002
        ulonglong m_nSize;
 
1003
        /** search options */
 
1004
        eFileTypes m_eFileType;
 
1005
        /** search string */
 
1006
        CString m_sString;
 
1007
        /** extended protocol */
 
1008
        bool m_bExtended;
 
1009
};
 
1010
 
 
1011
class DLL_EXPORT CMessageForceMove : public CDCMessage {
 
1012
public:
 
1013
        /** */
 
1014
        CMessageForceMove() : CDCMessage(DC_MESSAGE_FORCEMOVE) {
 
1015
                m_nPort = 0;
 
1016
        };
 
1017
        /** */
 
1018
        virtual ~CMessageForceMove() {};
 
1019
 
 
1020
        /** */
 
1021
        CMessageForceMove & operator = (const CMessageForceMove & p)
 
1022
        {
 
1023
                (CDCMessage&)*this = (CDCMessage&)p;
 
1024
 
 
1025
                m_sHost = p.m_sHost;
 
1026
                m_nPort = p.m_nPort;
 
1027
 
 
1028
                return *this;
 
1029
        };
 
1030
 
 
1031
        /** */
 
1032
        CString m_sHost;
 
1033
        /** */
 
1034
        int m_nPort;
 
1035
};
 
1036
 
 
1037
class DLL_EXPORT CMessageSearchResult : public CDCMessage {
 
1038
public:
 
1039
        /** */
 
1040
        CMessageSearchResult() : CDCMessage(DC_MESSAGE_SEARCHRESULT) {
 
1041
                m_nFreeSlot = 0;
 
1042
                m_nMaxSlot  = 0;
 
1043
                m_nSize     = 0;
 
1044
        };
 
1045
        /** */
 
1046
        virtual ~CMessageSearchResult() {};
 
1047
 
 
1048
        /** */
 
1049
        CMessageSearchResult & operator = (const CMessageSearchResult & p)
 
1050
        {
 
1051
                (CDCMessage&)*this = (CDCMessage&)p;
 
1052
 
 
1053
                m_sNick     = p.m_sNick;
 
1054
                m_sFile     = p.m_sFile;
 
1055
                m_nSize     = p.m_nSize;
 
1056
                m_sHubName  = p.m_sHubName;
 
1057
                m_sHubHost  = p.m_sHubHost;
 
1058
                m_sHash     = p.m_sHash;
 
1059
                m_nFreeSlot = p.m_nFreeSlot;
 
1060
                m_nMaxSlot  = p.m_nMaxSlot;
 
1061
 
 
1062
                return *this;
 
1063
        };
 
1064
 
 
1065
        /** */
 
1066
        CString m_sNick;
 
1067
        /** */
 
1068
        CString m_sFile;
 
1069
        /** */
 
1070
        ulonglong m_nSize;
 
1071
        /** */
 
1072
        CString m_sHubName;
 
1073
        /** */
 
1074
        CString m_sHubHost;
 
1075
        /** */
 
1076
        CString m_sHash;
 
1077
        /** */
 
1078
        unsigned int m_nFreeSlot;
 
1079
        /** */
 
1080
        unsigned int m_nMaxSlot;
 
1081
};
 
1082
 
 
1083
class DLL_EXPORT CMessagePrivateChat : public CDCMessage {
 
1084
public:
 
1085
        /** */
 
1086
        CMessagePrivateChat() : CDCMessage(DC_MESSAGE_PRIVATECHAT) {
 
1087
                m_eSecureState = esecsNONE;
 
1088
        };
 
1089
        /** */
 
1090
        virtual ~CMessagePrivateChat() {};
 
1091
 
 
1092
        /** */
 
1093
        CMessagePrivateChat & operator = (const CMessagePrivateChat & p)
 
1094
        {
 
1095
                (CDCMessage&)*this = (CDCMessage&)p;
 
1096
 
 
1097
                m_sDstNick      = p.m_sDstNick;
 
1098
                m_sSrcNick      = p.m_sSrcNick;
 
1099
                m_sMultiSrcNick = p.m_sMultiSrcNick;
 
1100
                m_sMessage      = p.m_sMessage;
 
1101
                m_eSecureState  = p.m_eSecureState;
 
1102
 
 
1103
                return *this;
 
1104
        };
 
1105
 
 
1106
        /** */
 
1107
        CString m_sDstNick;
 
1108
        /** */
 
1109
        CString m_sSrcNick;
 
1110
        /** */
 
1111
        CString m_sMultiSrcNick;
 
1112
        /** */
 
1113
        CString m_sMessage;
 
1114
        /** */
 
1115
        eSecureState m_eSecureState;
 
1116
};
 
1117
 
 
1118
class DLL_EXPORT CMessageHubName : public CDCMessage {
 
1119
public:
 
1120
        /** */
 
1121
        CMessageHubName() : CDCMessage(DC_MESSAGE_HUBNAME) {};
 
1122
        /** */
 
1123
        virtual ~CMessageHubName() {};
 
1124
 
 
1125
        /** */
 
1126
        CMessageHubName & operator = (const CMessageHubName & p)
 
1127
        {
 
1128
                (CDCMessage&)*this = (CDCMessage&)p;
 
1129
 
 
1130
                m_sHubName    = p.m_sHubName;
 
1131
                m_sOldHubName = p.m_sOldHubName;
 
1132
 
 
1133
                return *this;
 
1134
        };
 
1135
        
 
1136
        /** */
 
1137
        CString m_sHubName;
 
1138
        /** */
 
1139
        CString m_sOldHubName;
 
1140
};
 
1141
 
 
1142
// download manager object classes
 
1143
 
 
1144
class DLL_EXPORT CMessageDMFileObject : public CDCMessage {
 
1145
public:
 
1146
        /** */
 
1147
        CMessageDMFileObject() : CDCMessage(DC_MESSAGE_FILE_OBJECT) {
 
1148
                m_tTimeout           = 0;
 
1149
                m_eTransferWaitState = etwsWAIT;
 
1150
                m_nConnections       = 0;
 
1151
                m_eTransferFileState = etfsNONE;
 
1152
                m_nSize              = 0;
 
1153
                m_nStartPosition     = 0;
 
1154
                m_nCurrentPosition   = 0;
 
1155
                m_nEndPosition       = 0;
 
1156
                m_bMulti             = FALSE;
 
1157
                m_bRemoveFile        = FALSE;
 
1158
                m_nPriority          = 0;
 
1159
        };
 
1160
        /** */
 
1161
        virtual ~CMessageDMFileObject() {};
 
1162
 
 
1163
        /** */
 
1164
        CMessageDMFileObject & operator = (const CMessageDMFileObject & p)
 
1165
        {
 
1166
                m_sNick              = p.m_sNick;
 
1167
                m_sHubName           = p.m_sHubName;
 
1168
                m_sHubHost           = p.m_sHubHost;
 
1169
                m_tTimeout           = p.m_tTimeout;
 
1170
                m_eTransferWaitState = p.m_eTransferWaitState;
 
1171
                m_nConnections       = p.m_nConnections;
 
1172
                m_sRemoteFile        = p.m_sRemoteFile;
 
1173
                m_sLocalFile         = p.m_sLocalFile;
 
1174
                m_eTransferFileState = p.m_eTransferFileState;
 
1175
                m_nSize              = p.m_nSize;
 
1176
                m_nStartPosition     = p.m_nStartPosition;
 
1177
                m_nCurrentPosition   = p.m_nCurrentPosition;
 
1178
                m_nEndPosition       = p.m_nEndPosition;
 
1179
                m_bMulti             = p.m_bMulti;
 
1180
                m_bRemoveFile        = p.m_bRemoveFile;
 
1181
                m_nPriority          = p.m_nPriority;
 
1182
 
 
1183
                return *this;
 
1184
        };
 
1185
 
 
1186
        /** */
 
1187
        CString m_sNick;
 
1188
        /** */
 
1189
        CString m_sHubName;
 
1190
        /** */
 
1191
        CString m_sHubHost;
 
1192
        /** */
 
1193
        time_t m_tTimeout;
 
1194
        /** */
 
1195
        eTransferWaitState m_eTransferWaitState;
 
1196
        /** */
 
1197
        int m_nConnections;
 
1198
        /** remote file */
 
1199
        CString m_sRemoteFile;
 
1200
        /** the local file */
 
1201
        CString m_sLocalFile;
 
1202
        /** */
 
1203
        eTransferFileState m_eTransferFileState;
 
1204
        /** file size */
 
1205
        ulonglong m_nSize;
 
1206
        /** current file position */
 
1207
        ulonglong m_nStartPosition;
 
1208
        /** current file position */
 
1209
        ulonglong m_nCurrentPosition;
 
1210
        /** file end position */
 
1211
        ulonglong m_nEndPosition;
 
1212
        /** */
 
1213
        bool m_bMulti;
 
1214
        /** */
 
1215
        bool m_bRemoveFile;
 
1216
        /** */
 
1217
        int m_nPriority;
 
1218
};
 
1219
 
 
1220
class DLL_EXPORT CMessageDMTransferObject : public CDCMessage {
 
1221
public:
 
1222
        /** */
 
1223
        CMessageDMTransferObject() : CDCMessage(DC_MESSAGE_TRANSFER_OBJECT) {
 
1224
                m_nTransferID    = 0;
 
1225
                lSize            = 0;
 
1226
                lSizeDone        = 0;
 
1227
                lRate            = 0;
 
1228
                lStartPosition   = 0;
 
1229
                lTransfered      = 0;
 
1230
                lEndPosition     = 0;
 
1231
                eState           = estNONE;
 
1232
                bRemoveTransfer  = FALSE;
 
1233
                m_nMultiRate     = 0;
 
1234
                m_bEncrypted     = FALSE;
 
1235
        };
 
1236
        /** */
 
1237
        virtual ~CMessageDMTransferObject() {};
 
1238
 
 
1239
        /** */
 
1240
        CMessageDMTransferObject & operator = (const CMessageDMTransferObject & p)
 
1241
        {
 
1242
                m_nTransferID   = p.m_nTransferID;
 
1243
                m_sSrcNick      = p.m_sSrcNick;
 
1244
                m_sDstNick      = p.m_sDstNick;
 
1245
                sHost           = p.sHost;
 
1246
                m_sHubHost      = p.m_sHubHost;
 
1247
                sHubName        = p.sHubName;
 
1248
                m_sDstFile      = p.m_sDstFile;
 
1249
                m_sSrcFile      = p.m_sSrcFile;
 
1250
                lSize           = p.lSize;
 
1251
                lSizeDone       = p.lSizeDone;
 
1252
                lRate           = p.lRate;
 
1253
                m_nMultiRate    = p.m_nMultiRate;
 
1254
                lStartPosition  = p.lStartPosition;
 
1255
                lTransfered     = p.lTransfered;
 
1256
                lEndPosition    = p.lEndPosition;
 
1257
                bRemoveTransfer = p.bRemoveTransfer;
 
1258
                m_bEncrypted    = p.m_bEncrypted;
 
1259
 
 
1260
                return *this;
 
1261
        };
 
1262
 
 
1263
        /** */
 
1264
        ulonglong m_nTransferID;
 
1265
        /** */
 
1266
        CString m_sSrcNick;
 
1267
        /** */
 
1268
        CString m_sDstNick;
 
1269
        /** */
 
1270
        CString sHost;
 
1271
        /** */
 
1272
        CString m_sHubHost;
 
1273
        /** */
 
1274
        CString sHubName;
 
1275
        /** */
 
1276
        eConnectionState eState;
 
1277
 
 
1278
        /** remote file */
 
1279
        CString m_sDstFile;
 
1280
        /** local file */
 
1281
        CString m_sSrcFile;
 
1282
        /** file size */
 
1283
        ulonglong lSize;
 
1284
        /** file size done */
 
1285
        ulonglong lSizeDone;
 
1286
        /** rate of transfer */
 
1287
        ulonglong lRate;
 
1288
        /** rate of all transfers */
 
1289
        ulonglong m_nMultiRate;
 
1290
        /** */
 
1291
        ulonglong lStartPosition;
 
1292
        /** */
 
1293
        ulonglong lTransfered;
 
1294
        /** */
 
1295
        ulonglong lEndPosition;
 
1296
        /** */
 
1297
        bool bRemoveTransfer;
 
1298
        /** */
 
1299
        bool m_bEncrypted;
 
1300
};
 
1301
 
 
1302
class DLL_EXPORT CMessageDMFileListObject : public CDCMessage {
 
1303
public:
 
1304
        /** */
 
1305
        CMessageDMFileListObject() : CDCMessage(DC_MESSAGE_FILELIST_OBJECT) {};
 
1306
        /** */
 
1307
        virtual ~CMessageDMFileListObject() {};
 
1308
 
 
1309
        /** */
 
1310
        CMessageDMFileListObject & operator = (const CMessageDMFileListObject & p)
 
1311
        {
 
1312
                sNick      = p.sNick;
 
1313
                sHubName   = p.sHubName;
 
1314
                sHubHost   = p.sHubHost;
 
1315
                sLocalFile = p.sLocalFile;
 
1316
 
 
1317
                return *this;
 
1318
        };
 
1319
 
 
1320
        /** */
 
1321
        CString sNick;
 
1322
        /** */
 
1323
        CString sHubName;
 
1324
        /** */
 
1325
        CString sHubHost;
 
1326
        /** */
 
1327
        CString sLocalFile;
 
1328
};
 
1329
 
 
1330
class DLL_EXPORT CMessageDMSlotObject : public CDCMessage {
 
1331
public:
 
1332
        /** */
 
1333
        CMessageDMSlotObject() : CDCMessage(DC_MESSAGE_SLOT_OBJECT) {
 
1334
                iSlots     = 0;
 
1335
                bPermanent = FALSE;
 
1336
        };
 
1337
        /** */
 
1338
        virtual ~CMessageDMSlotObject() {};
 
1339
 
 
1340
        /** */
 
1341
        CString sNick;
 
1342
        /** */
 
1343
        CString sHubName;
 
1344
        /** */
 
1345
        int iSlots;
 
1346
        /** */
 
1347
        bool bPermanent;
 
1348
};
 
1349
 
 
1350
class DLL_EXPORT CMessageLog : public CDCMessage {
 
1351
public:
 
1352
        /** */
 
1353
        CMessageLog() : CDCMessage(DC_MESSAGE_LOG) {};
 
1354
        /** */
 
1355
        virtual ~CMessageLog() {};
 
1356
 
 
1357
        /** */
 
1358
        CString sMessage;
 
1359
};
 
1360
 
 
1361
class DLL_EXPORT CMessageSearchUser : public CMessageNick {
 
1362
public:
 
1363
        /** */
 
1364
        CMessageSearchUser() {
 
1365
                m_eType = DC_MESSAGE_SEARCH_USER;
 
1366
        };
 
1367
        /** */
 
1368
        virtual ~CMessageSearchUser() {};
 
1369
};
 
1370
 
 
1371
class DLL_EXPORT CMessageSearchResultUser : public CMessageMyInfo {
 
1372
public:
 
1373
        /** */
 
1374
        CMessageSearchResultUser() {
 
1375
                m_eType = DC_MESSAGE_SEARCHRESULT_USER;
 
1376
        };
 
1377
        /** */
 
1378
        virtual ~CMessageSearchResultUser() {};
 
1379
 
 
1380
        /** */
 
1381
        CString m_sHubName;
 
1382
};
 
1383
 
 
1384
class DLL_EXPORT CMessageSearchFile : public CMessageSearch {
 
1385
public:
 
1386
        /** */
 
1387
        CMessageSearchFile() {
 
1388
                m_eType  = DC_MESSAGE_SEARCH_FILE;
 
1389
                m_bMulti = FALSE;
 
1390
        };
 
1391
        /** */
 
1392
        virtual ~CMessageSearchFile() {};
 
1393
 
 
1394
        /** hub network search */
 
1395
        bool m_bMulti;
 
1396
};
 
1397
 
 
1398
class DLL_EXPORT DCHubObject : public CObject {
 
1399
public:
 
1400
        /** */
 
1401
        DCHubObject() {
 
1402
                m_bActive = FALSE;
 
1403
        }
 
1404
        /** */
 
1405
        DCHubObject( DCHubObject * o ) {
 
1406
                m_bActive  = o->m_bActive;
 
1407
                m_sHubName = o->m_sHubName;
 
1408
                m_sHubHost = o->m_sHubHost;
 
1409
        }
 
1410
 
 
1411
        /** */
 
1412
        virtual ~DCHubObject() {};
 
1413
 
 
1414
        /** */
 
1415
        bool m_bActive;
 
1416
        /** */
 
1417
        CString m_sHubName;
 
1418
        /** */
 
1419
        CString m_sHubHost;
 
1420
};
 
1421
 
 
1422
class DLL_EXPORT DCMessageTraffic : public CDCMessage {
 
1423
public:
 
1424
        /** */
 
1425
        DCMessageTraffic() : CDCMessage(DC_MESSAGE_TRAFFIC) {
 
1426
                m_nRx        = 0;
 
1427
                m_nTx        = 0;
 
1428
                m_nDataRx    = 0;
 
1429
                m_nDataTx    = 0;
 
1430
                m_nControlRx = 0;
 
1431
                m_nControlTx = 0;
 
1432
        }
 
1433
        /** */
 
1434
        virtual ~DCMessageTraffic() {};
 
1435
 
 
1436
        DCMessageTraffic & operator = (const DCMessageTraffic & s)
 
1437
        {
 
1438
                m_nRx        = s.m_nRx;
 
1439
                m_nTx        = s.m_nTx;
 
1440
                m_nDataRx    = s.m_nDataRx;
 
1441
                m_nDataTx    = s.m_nDataTx;
 
1442
                m_nControlRx = s.m_nControlRx;
 
1443
                m_nControlTx = s.m_nControlTx;
 
1444
 
 
1445
                return *this;
 
1446
        };
 
1447
 
 
1448
        /** */
 
1449
        ulonglong m_nRx;
 
1450
        /** */
 
1451
        ulonglong m_nTx;
 
1452
        /** */
 
1453
        ulonglong m_nDataRx;
 
1454
        /** */
 
1455
        ulonglong m_nDataTx;
 
1456
        /** */
 
1457
        ulonglong m_nControlRx;
 
1458
        /** */
 
1459
        ulonglong m_nControlTx;
 
1460
};
 
1461
 
 
1462
class DLL_EXPORT DCMessageGetHubList : public CDCMessage {
 
1463
public:
 
1464
        /** */
 
1465
        DCMessageGetHubList() : CDCMessage(DC_MESSAGE_GETHUBLIST) {
 
1466
                m_bRun = FALSE;
 
1467
        }
 
1468
        /** */
 
1469
        virtual ~DCMessageGetHubList() {};
 
1470
 
 
1471
        /** */
 
1472
        bool m_bRun;
 
1473
};
 
1474
 
 
1475
class DLL_EXPORT DCMessageConnectClient : public CDCMessage {
 
1476
public:
 
1477
        /** */
 
1478
        DCMessageConnectClient() : CDCMessage(DC_MESSAGE_CONNECT_CLIENT) {
 
1479
        }
 
1480
        /** */
 
1481
        virtual ~DCMessageConnectClient() {};
 
1482
 
 
1483
        /** */
 
1484
        CString m_sHubName;
 
1485
        /** */
 
1486
        CString m_sHubHost;
 
1487
};
 
1488
 
 
1489
#endif