23 #define FUNCTORS_INC 1
55 virtual void *
Call( std::vector< std::string > &d,
int &sock_in,
bool *isDown ) = 0;
57 template <
class TClass >
64 void (TClass::*fpt1)();
65 void (TClass::*fpt2)(std::string&);
66 void (TClass::*fpt3)(
const char*);
67 void (TClass::*fpt4)(
const char *array[]);
68 void (TClass::*fpt5)(
const char*,
const char*);
69 void (TClass::*fpt6)(
bool*);
70 void (TClass::*fpt7)(
int);
71 void (TClass::*fpt8)(char);
72 void (TClass::*fpt9)(std::vector< std::string* > *
d);
73 void (TClass::*fpt10)(std::vector< std::string* > *
d,
int &sock_in);
74 void (TClass::*fpt11)(std::string&,
int &);
75 void (TClass::*fpt12)(std::vector< std::string* >*,
int &,
bool);
79 virtual void *
Call( std::vector< std::string > &d,
int &sock_in,
bool *isDown )
92 else if (fpt2 != NULL) {
96 for (x = 0; x < d.size(); x++) {
100 (*pt2Object.*fpt2)( a );
102 }
else if (fpt3 != NULL) {
105 (*pt2Object.*fpt3)( d[1].c_str() );
106 else (*pt2Object.*fpt3)( (
const char*) NULL );
108 }
else if (fpt4 != NULL) {
110 std::vector< const char* >buf;
111 for (
unsigned int c = 0;
c < d.size();) {
112 buf.push_back( d[
c].c_str() );
114 if ( !(
c < d.size() ) )
115 buf.push_back(
" " );
117 (*pt2Object.*fpt4)( &buf[0] );
119 }
else if (fpt5 != NULL) {
122 (*pt2Object.*fpt5)( (
const char*) NULL, (
const char*) NULL );
123 else if (d.size() < 3)
124 (*pt2Object.*fpt5)( d[1].c_str(), (
const char*) NULL );
126 (*pt2Object.*fpt5)( d[1].c_str(), d[2].c_str() );
128 }
else if (fpt6 != NULL) {
130 (*pt2Object.*fpt6)( isDown );
133 else if (fpt7 != NULL) {
136 (*pt2Object.*fpt7)( 0 );
138 (*pt2Object.*fpt7)( atoi( d[1].c_str() ) );
140 }
else if (fpt8 != NULL) {
144 (*pt2Object.*fpt8)( err );
146 (*pt2Object.*fpt8)( d[1][0] );
149 }
else if (fpt9 != NULL) {
151 std::vector< std::string* >dup;
152 std::vector< std::string >::iterator ptr = d.begin();
153 while ( ptr < d.end() ) {
154 dup.push_back( &( *(ptr) ) );
157 (*pt2Object.*fpt9)( &dup );
159 }
else if (fpt10 != NULL) {
161 std::vector< std::string* >dup;
162 std::vector< std::string >::iterator ptr = d.begin();
163 while ( ptr < d.end() ) {
164 dup.push_back( &( *(ptr) ) );
167 (*pt2Object.*fpt10)( &dup, sock_in );
169 }
else if (fpt11 != NULL) {
173 for (x = 0; x < d.size(); x++) {
177 (*pt2Object.*fpt11)( a, sock_in );
179 }
else if (fpt12 != NULL) {
181 std::vector< std::string* >dup;
182 std::vector< std::string >::iterator ptr = d.begin();
183 while ( ptr < d.end() ) {
184 dup.push_back( &( *(ptr) ) );
187 (*pt2Object.*fpt12)( &dup, sock_in,
false );
210 Functor( TClass *_pt2Object,
void(TClass::*_fpt)() )
213 pt2Object = _pt2Object;
217 Functor( TClass *_pt2Object,
void(TClass::*_fpt)(std::string&) )
220 pt2Object = _pt2Object;
224 Functor( TClass *_pt2Object,
void(TClass::*_fpt)(
const char*) )
227 pt2Object = _pt2Object;
230 Functor( TClass *_pt2Object,
void(TClass::*_fpt)(
const char *array[]) )
233 pt2Object = _pt2Object;
237 Functor( TClass *_Obj,
void(TClass::*_fpt)(
const char*,
const char*) )
244 Functor( TClass *_Obj,
void(TClass::*_fpt)(
bool*) )
251 Functor( TClass *_Obj,
void(TClass::*_fpt)(
int) )
258 Functor( TClass *_Obj,
void(TClass::*_fpt)(
char) )
265 Functor( TClass *_Obj,
void(TClass::*_fpt)(std::vector< std::string* > *d) )
268 pt2Object = _Obj, fpt9 = _fpt;
271 Functor( TClass *_Obj,
void(TClass::*_fpt)(std::vector< std::string* > *d,
int &) )
274 pt2Object = _Obj, fpt10 = _fpt;
277 Functor( TClass *_pt2Object,
void(TClass::*_fpt)(std::string&,
int &) )
280 pt2Object = _pt2Object;
284 Functor( TClass *_Obj,
void(TClass::*_fpt)(std::vector< std::string* > *d,
int &,
bool) )
287 pt2Object = _Obj, fpt12 = _fpt;