KVIrc  4.9.2
DeveloperAPIs
KviSharedFilesManager.h
Go to the documentation of this file.
1 #ifndef _KVI_FILETRADER_H_
2 #define _KVI_FILETRADER_H_
3 //=============================================================================
4 //
5 // File : KviSharedFilesManager.h
6 // Creation date : Wed Aug 27 2000 10:28:51 CEST 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 "kvi_settings.h"
28 #include "KviPointerHashTable.h"
29 #include "KviSharedFile.h"
30 
31 #include <QTimer>
32 
33 class KviIrcMask;
34 
35 class KVILIB_API KviSharedFilesManager : public QObject
36 {
37  Q_OBJECT
38 public:
41 
42 private:
43  QTimer * m_pCleanupTimer;
45 
46 public:
47  void addSharedFile(KviSharedFile * f);
48  KviSharedFile * addSharedFile(const QString & szName, const QString & szAbsPath, const QString & szMask, int timeoutInSecs);
49  KviSharedFile * lookupSharedFile(const QString & szName, KviIrcMask * mask, unsigned int uFileSize = 0);
50  bool removeSharedFile(const QString & szName, const QString & szMask, unsigned int uFileSize);
51  bool removeSharedFile(const QString & szName, KviSharedFile * off);
52  void load(const QString & filename);
53  void save(const QString & filename);
54  void clear();
56 private:
57  void doInsert(KviSharedFileList * l, KviSharedFile * o);
58 private slots:
59  void cleanup();
60 signals:
61  void sharedFilesChanged(); // emitted when the list is cleared at once
62  void sharedFileAdded(KviSharedFile * f);
63  void sharedFileRemoved(KviSharedFile * f);
64 };
65 
66 #endif //_KVI_FILETRADER_H_
KviPointerHashTable< QString, KviSharedFileList > * m_pSharedListDict
Definition: KviSharedFilesManager.h:44
#define f
Definition: detector.cpp:70
#define l
Definition: detector.cpp:76
QTimer * m_pCleanupTimer
Definition: KviSharedFilesManager.h:43
Irc user mask handling.
Definition: KviIrcMask.h:45
btnDict clear()
Pointer Hash Table.
bool save(KviThemeInfo &options, bool bSaveIcons)
Definition: KviOptions.cpp:986
Definition: KviSharedFilesManager.h:35
KviPointerHashTable< QString, KviSharedFileList > * sharedFileListDict()
Definition: KviSharedFilesManager.h:55
A template double linked list of pointers.
Definition: KviPointerList.h:55
#define o
Definition: detector.cpp:79
Definition: KviSharedFile.h:38
A fast pointer hash table implementation.
Definition: KviPointerHashTable.h:391
This file contains compile time settings.
#define KVILIB_API
Definition: kvi_settings.h:125