1 #ifndef _KVI_CRYPT_ENGINE_MANAGER_H_
2 #define _KVI_CRYPT_ENGINE_MANAGER_H_
3 //=============================================================================
4 //
5 //   File : KviCryptEngineManager.h
6 //   Creation date : Wed Dec 29 2010 22:10:05 CEST by Elvio Basello
7 //
8 //   This file is part of the KVIrc IRC client distribution
9 //   Copyright (C) 2010 Elvio Basello (hellvis69 at gmail dot com)
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 // this file was originally part of KviCryptEngine.h
28 
29 #include "kvi_settings.h"
30 #include "KviPointerHashTable.h"
31 
32 class KviCryptEngine;
33 class KviCryptEngineDescription;
34 
35 #ifdef COMPILE_CRYPT_SUPPORT
36 
37 class QString;
38 
39 class KVILIB_API KviCryptEngineManager
40 {
41 public:
42 	KviCryptEngineManager();
43 	virtual ~KviCryptEngineManager();
44 
45 private:
46 	KviPointerHashTable<QString, KviCryptEngineDescription> * m_pEngineDict;
47 
48 public:
engineDict()49 	const KviPointerHashTable<QString, KviCryptEngineDescription> * engineDict() { return m_pEngineDict; };
50 	void registerEngine(KviCryptEngineDescription * pDesc);
51 	void unregisterEngine(const QString & szName);
52 	void unregisterEngines(void * providerHandle);
53 	//
54 	// Allocates a crypt engine
55 	// Please note that the engine may be deleted from outside
56 	// so you'd better connect the "destroyed" signal
57 	//
58 	KviCryptEngine * allocateEngine(const QString & szName);
59 	void deallocateEngine(KviCryptEngine * pEngine);
60 };
61 
62 #endif // COMPILE_CRYPT_SUPPORT
63 #endif // _KVI_CRYPT_ENGINE_MANAGER_H_
64