KVIrc 5.2.4
Developer APIs
KviKvsKernel.h
Go to the documentation of this file.
1#ifndef _KVI_KVS_KERNEL_H_
2#define _KVI_KVS_KERNEL_H_
3//=============================================================================
4//
5// File : KviKvsKernel.h
6// Creation date : Tue 30 Sep 2003 13.46 CEST by Szymon Stefanek
7//
8// This file is part of the KVIrc IRC client distribution
9// Copyright (C) 2003-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
29#include "KviKvsParser.h"
30#include "KviQString.h"
31
32#include "KviPointerHashTable.h"
33
34#include <vector>
35
42class KviKvsVariant;
43class KviKvsScript;
44class KviKvsHash;
45
51
57
63
64typedef bool (*coreCallbackCommandExecRoutine)(KviKvsRunTimeContext * c, KviKvsVariantList * pParams, KviKvsSwitchList * pSwitches, const KviKvsScript * pCallback);
69
71{
72public:
75
76private:
77 static KviKvsKernel * m_pKvsKernel; // global kernel object
78
80
84
87
90
91public:
92 static void init();
93 static void done();
94 static KviKvsKernel * instance() { return m_pKvsKernel; };
95
96 KviKvsVariantList * emptyParameterList() { return m_pEmptyParameterList; };
97
98 KviKvsHash * globalVariables() { return m_pGlobalVariables; };
99
100 KviKvsObjectController * objectController() { return m_pObjectController; };
101
102 KviKvsAsyncOperationManager * asyncOperationManager() { return m_pAsyncOperationManager; };
103
105 {
106 m_pSpecialCommandParsingRoutineDict->replace(szCmdName, r);
107 };
108
110 {
111 return m_pSpecialCommandParsingRoutineDict->find(szCmdName);
112 };
113
115 {
116 m_pCoreSimpleCommandExecRoutineDict->replace(szCmdName, r);
117 };
118
120 {
121 return m_pCoreSimpleCommandExecRoutineDict->find(szCmdName);
122 };
123
125 {
126 m_pCoreFunctionExecRoutineDict->replace(szFncName, r);
127 };
128
130 {
131 return m_pCoreFunctionExecRoutineDict->find(szFncName);
132 };
133
135 {
136 m_pCoreCallbackCommandExecRoutineDict->replace(szCmdName, r);
137 };
138
140 {
141 return m_pCoreCallbackCommandExecRoutineDict->find(szCmdName);
142 };
143
144 void completeCommand(const QString & szCommandBegin, std::vector<QString> & pMatches);
145 void completeFunction(const QString & szFunctionBegin, std::vector<QString> & pMatches);
146 void completeModuleCommand(const QString & szModuleName, const QString & szCommandBegin, std::vector<QString> & matches);
147 void completeModuleFunction(const QString & szModuleName, const QString & szFunctionBegin, std::vector<QString> & matches);
148
149 void getAllFunctionsCommandsCore(QStringList * list);
150};
151
152#endif
bool(* coreCallbackCommandExecRoutine)(KviKvsRunTimeContext *c, KviKvsVariantList *pParams, KviKvsSwitchList *pSwitches, const KviKvsScript *pCallback)
Definition KviKvsKernel.h:64
KviKvsTreeNodeCommand *(KviKvsParser::* specialCommandParsingRoutine)()
Definition KviKvsKernel.h:46
bool(* coreFunctionExecRoutine)(KviKvsRunTimeContext *c, KviKvsVariantList *pParams, KviKvsVariant *pRetBuffer)
Definition KviKvsKernel.h:58
bool(* coreSimpleCommandExecRoutine)(KviKvsRunTimeContext *c, KviKvsVariantList *pParams, KviKvsSwitchList *pSwitches)
Definition KviKvsKernel.h:52
Pointer Hash Table.
Helper functions for the QString class.
Definition KviKvsAsyncOperation.h:49
This class defines a new data type which contains hash data.
Definition KviKvsHash.h:48
Definition KviKvsKernel.h:71
KviKvsVariantList * emptyParameterList()
Definition KviKvsKernel.h:96
KviKvsVariantList * m_pEmptyParameterList
Definition KviKvsKernel.h:86
void registerSpecialCommandParsingRoutine(const QString &szCmdName, KviKvsSpecialCommandParsingRoutine *r)
Definition KviKvsKernel.h:104
void registerCoreFunctionExecRoutine(const QString &szFncName, KviKvsCoreFunctionExecRoutine *r)
Definition KviKvsKernel.h:124
KviKvsSpecialCommandParsingRoutine * findSpecialCommandParsingRoutine(const QString &szCmdName)
Definition KviKvsKernel.h:109
KviKvsCoreCallbackCommandExecRoutine * findCoreCallbackCommandExecRoutine(const QString &szCmdName)
Definition KviKvsKernel.h:139
KviKvsAsyncOperationManager * asyncOperationManager()
Definition KviKvsKernel.h:102
void registerCoreSimpleCommandExecRoutine(const QString &szCmdName, KviKvsCoreSimpleCommandExecRoutine *r)
Definition KviKvsKernel.h:114
KviKvsAsyncOperationManager * m_pAsyncOperationManager
Definition KviKvsKernel.h:89
static KviKvsKernel * instance()
Definition KviKvsKernel.h:94
KviKvsObjectController * objectController()
Definition KviKvsKernel.h:100
static KviKvsKernel * m_pKvsKernel
Definition KviKvsKernel.h:77
KviKvsHash * m_pGlobalVariables
Definition KviKvsKernel.h:85
KviPointerHashTable< QString, KviKvsCoreSimpleCommandExecRoutine > * m_pCoreSimpleCommandExecRoutineDict
Definition KviKvsKernel.h:81
KviKvsHash * globalVariables()
Definition KviKvsKernel.h:98
KviKvsCoreSimpleCommandExecRoutine * findCoreSimpleCommandExecRoutine(const QString &szCmdName)
Definition KviKvsKernel.h:119
void registerCoreCallbackCommandExecRoutine(const QString &szCmdName, KviKvsCoreCallbackCommandExecRoutine *r)
Definition KviKvsKernel.h:134
KviPointerHashTable< QString, KviKvsSpecialCommandParsingRoutine > * m_pSpecialCommandParsingRoutineDict
Definition KviKvsKernel.h:79
KviKvsObjectController * m_pObjectController
Definition KviKvsKernel.h:88
KviPointerHashTable< QString, KviKvsCoreFunctionExecRoutine > * m_pCoreFunctionExecRoutineDict
Definition KviKvsKernel.h:83
KviKvsCoreFunctionExecRoutine * findCoreFunctionExecRoutine(const QString &szFncName)
Definition KviKvsKernel.h:129
KviPointerHashTable< QString, KviKvsCoreCallbackCommandExecRoutine > * m_pCoreCallbackCommandExecRoutineDict
Definition KviKvsKernel.h:82
Definition KviKvsObjectController.h:38
Definition KviKvsParser.h:55
Definition KviKvsRunTimeContext.h:104
The KVIrc Script class.
Definition KviKvsScript.h:60
Definition KviKvsSwitchList.h:34
Definition KviKvsTreeNodeCommand.h:35
Definition KviKvsTreeNodeSpecialCommand.h:32
Class to handle variant variables lists.
Definition KviKvsVariantList.h:42
This class defines a new data type which contains variant data.
Definition KviKvsVariant.h:352
A fast pointer hash table implementation.
Definition KviPointerHashTable.h:450
void replace(const Key &hKey, T *pData)
Inserts the item pData at the position specified by the key hKey.
Definition KviPointerHashTable.h:567
T * find(const Key &hKey)
Returns the item associated to the key.
Definition KviPointerHashTable.h:471
#define r
Definition detector.cpp:83
This file contains compile time settings.
#define KVIRC_API
Definition kvi_settings.h:127
Definition KviKvsKernel.h:66
coreCallbackCommandExecRoutine proc
Definition KviKvsKernel.h:67
Definition KviKvsKernel.h:60
coreFunctionExecRoutine proc
Definition KviKvsKernel.h:61
Definition KviKvsKernel.h:54
coreSimpleCommandExecRoutine proc
Definition KviKvsKernel.h:55
Definition KviKvsKernel.h:48
specialCommandParsingRoutine proc
Definition KviKvsKernel.h:49
int init()
Definition winamp.cpp:118