31 #include <qstringlist.h> 33 #include <qtextcodec.h> 35 #include <qvaluevector.h> 41 LIB_TEMPLATE_EXTERN
template struct LIB_EXPORT QPair<QString,int>;
42 LIB_TEMPLATE_EXTERN
template class LIB_EXPORT QMap<QPair<QString,int>,
memFunc*>;
43 LIB_TEMPLATE_EXTERN
template class LIB_EXPORT QMap<QPair<QString,int>,
memProc*>;
47 QTextCodec * m_pTextCodec;
51 typedef QPair<QString,int> FuncDesc;
54 typedef QMap<FuncDesc,memFunc*> FuncDescToMemFunc;
55 typedef QMap<FuncDesc,memProc*> FuncDescToMemProc;
57 FuncDescToMemFunc m_mapMemFunc;
58 FuncDescToMemProc m_mapMemProc;
64 int execute(
const char * cmd);
65 int execute(
const QString & ucmd);
66 QString result()
const {
return m_result;};
67 QString error()
const {
return m_error;};
70 void setEncoding(
const QString & encoding);
71 int parse(
const char * cmd, QString & func, QValueVector<QVariant> & parms);
72 int parse(
const QString & ucmd, QString & func, QValueVector<QVariant> & parms);
74 template <
class T,
class R>
75 int addFuncBinding(T * pobj, R (T::*pfunc)(
void),
const QString & name)
77 delete m_mapMemFunc[FuncDesc(name,0)];
82 template <
class T,
class R>
83 int addFuncBinding(T * pobj, R (T::*pfunc)(
void)
const,
const QString & name)
85 delete m_mapMemFunc[FuncDesc(name,0)];
90 template <
class T,
class R,
class P1>
91 int addFuncBinding(T * pobj, R (T::*pfunc)(P1),
const QString & name)
93 delete m_mapMemFunc[FuncDesc(name,1)];
98 template <
class T,
class R,
class P1>
99 int addFuncBinding(T * pobj, R (T::*pfunc)(P1)
const,
const QString & name)
101 delete m_mapMemFunc[FuncDesc(name,1)];
106 template <
class T,
class R,
class P1,
class P2>
107 int addFuncBinding(T * pobj, R (T::*pfunc)(P1,P2),
const QString & name)
109 delete m_mapMemFunc[FuncDesc(name,2)];
114 template <
class T,
class R,
class P1,
class P2>
115 int addFuncBinding(T * pobj, R (T::*pfunc)(P1,P2)
const,
const QString & name)
117 delete m_mapMemFunc[FuncDesc(name,2)];
122 template <
class T,
class R,
class P1,
class P2,
class P3>
123 int addFuncBinding(T * pobj, R (T::*pfunc)(P1,P2,P3),
const QString & name)
125 delete m_mapMemFunc[FuncDesc(name,3)];
130 template <
class T,
class R,
class P1,
class P2,
class P3>
131 int addFuncBinding(T * pobj, R (T::*pfunc)(P1,P2,P3)
const,
const QString & name)
133 delete m_mapMemFunc[FuncDesc(name,3)];
134 m_mapMemFunc[FuncDesc(name,3)]=
new memFunc3<T,R,P1,P2,P3, ConstFunc3<T,R,P1,P2,P3> >(pobj,pfunc);
138 template <
class T,
class R,
class P1,
class P2,
class P3,
class P4>
139 int addFuncBinding(T * pobj, R (T::*pfunc)(P1,P2,P3,P4),
const QString & name)
141 delete m_mapMemFunc[FuncDesc(name,4)];
146 template <
class T,
class R,
class P1,
class P2,
class P3,
class P4>
147 int addFuncBinding(T * pobj, R (T::*pfunc)(P1,P2,P3,P4)
const,
const QString & name)
149 delete m_mapMemFunc[FuncDesc(name,4)];
150 m_mapMemFunc[FuncDesc(name,4)]=
new memFunc4<T,R,P1,P2,P3,P4, ConstFunc4<T,R,P1,P2,P3,P4> >(pobj,pfunc);
154 template <
class T,
class R,
class P1,
class P2,
class P3,
class P4,
class P5>
155 int addFuncBinding(T * pobj, R (T::*pfunc)(P1,P2,P3,P4,P5),
const QString & name)
157 delete m_mapMemFunc[FuncDesc(name,5)];
162 template <
class T,
class R,
class P1,
class P2,
class P3,
class P4,
class P5>
163 int addFuncBinding(T * pobj, R (T::*pfunc)(P1,P2,P3,P4,P5)
const,
const QString & name)
165 delete m_mapMemFunc[FuncDesc(name,5)];
166 m_mapMemFunc[FuncDesc(name,5)]=
new memFunc5<T,R,P1,P2,P3,P4,P5, ConstFunc5<T,R,P1,P2,P3,P4,P5> >(pobj,pfunc);
170 template <
class T,
class R>
171 int addFuncBinding0(T * pobj,
typename memFunc0<T,R>::memFunPtr pfunc,
const QString & name)
173 delete m_mapMemFunc[FuncDesc(name,0)];
174 m_mapMemFunc[FuncDesc(name,0)]=
new memFunc0<T,R>(pobj,pfunc);
178 template <
class T,
class R,
class FuncType >
179 int addFuncBinding0(T * pobj,
typename memFunc0<T,R,FuncType>::memFunPtr pfunc,
const QString & name)
181 delete m_mapMemFunc[FuncDesc(name,0)];
186 template <
class T,
class R,
class P1>
187 int addFuncBinding1(T * pobj,
typename memFunc1<T,R,P1>::memFunPtr pfunc,
const QString & name)
189 delete m_mapMemFunc[FuncDesc(name,1)];
194 template <
class T,
class R,
class P1,
class P2>
195 int addFuncBinding2(T * pobj,
typename memFunc2<T,R,P1,P2>::memFunPtr pfunc,
const QString & name)
197 delete m_mapMemFunc[FuncDesc(name,2)];
202 template <
class T,
class R,
class P1,
class P2,
class P3>
203 int addFuncBinding3(T * pobj,
typename memFunc3<T,R,P1,P2,P3>::memFunPtr pfunc,
const QString & name)
205 delete m_mapMemFunc[FuncDesc(name,3)];
209 template <
class T,
class R,
class P1,
class P2,
class P3,
class P4>
210 int addFuncBinding4(T * pobj,
typename memFunc4<T,R,P1,P2,P3,P4>::memFunPtr pfunc,
const QString & name)
212 delete m_mapMemFunc[FuncDesc(name,4)];
217 template <
class T,
class R,
class P1,
class P2,
class P3,
class P4,
class P5>
218 int addFuncBinding5(T * pobj,
typename memFunc5<T,R,P1,P2,P3,P4,P5>::memFunPtr pfunc,
const QString & name)
220 delete m_mapMemFunc[FuncDesc(name,5)];
225 template <
class T,
class P1,
class P2,
class P3,
class P4,
class P5>
228 delete m_mapMemProc[FuncDesc(name,5)];
233 template <
class T,
class P1,
class P2,
class P3,
class P4>
236 delete m_mapMemProc[FuncDesc(name,4)];
241 template <
class T,
class P1,
class P2,
class P3>
244 delete m_mapMemProc[FuncDesc(name,3)];
249 template <
class T,
class P1,
class P2>
252 delete m_mapMemProc[FuncDesc(name,2)];
257 template <
class T,
class P1>
260 delete m_mapMemProc[FuncDesc(name,1)];
266 int addProcBinding0(T * pobj,
typename memProc0<T>::memProcPtr pfunc,
const QString & name)
268 delete m_mapMemProc[FuncDesc(name,0)];
269 m_mapMemProc[FuncDesc(name,0)]=
new memProc0<T>(pobj,pfunc);
273 template <
class T,
class FT>
274 int addProcBinding0(T * pobj,
typename memProc0<T,FT>::memProcPtr pfunc,
const QString & name)
276 delete m_mapMemProc[FuncDesc(name,0)];
Command interpreter for TEBase classes.
Definition: cmdparser.h:45