The InspIRCd Project
Home | Developers | Wiki | Forums | Bug Tracker | SVN | Download
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

caller.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  HandlerBase0< ReturnType >
 The templates below can be auto generated by tools/create_templates.pl. More...
class  HandlerBase1< ReturnType, Param1 >
class  HandlerBase2< ReturnType, Param1, Param2 >
class  HandlerBase3< ReturnType, Param1, Param2, Param3 >
class  HandlerBase4< ReturnType, Param1, Param2, Param3, Param4 >
class  HandlerBase5< ReturnType, Param1, Param2, Param3, Param4, Param5 >
class  HandlerBase6< ReturnType, Param1, Param2, Param3, Param4, Param5, Param6 >
class  HandlerBase7< ReturnType, Param1, Param2, Param3, Param4, Param5, Param6, Param7 >
class  HandlerBase8< ReturnType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8 >
class  caller< HandlerType >
class  caller0< ReturnType >
class  caller1< ReturnType, Param1 >
class  caller2< ReturnType, Param1, Param2 >
class  caller3< ReturnType, Param1, Param2, Param3 >
class  caller4< ReturnType, Param1, Param2, Param3, Param4 >
class  caller5< ReturnType, Param1, Param2, Param3, Param4, Param5 >
class  caller6< ReturnType, Param1, Param2, Param3, Param4, Param5, Param6 >
class  caller7< ReturnType, Param1, Param2, Param3, Param4, Param5, Param6, Param7 >
class  caller8< ReturnType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8 >

Defines

#define DEFINE_HANDLER0(NAME, RETURN)   class CoreExport NAME : public HandlerBase0<RETURN> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(); }
 These shorthand macros are used to define a functor class which only implements Call().
#define DEFINE_HANDLER1(NAME, RETURN, V1)   class CoreExport NAME : public HandlerBase1<RETURN, V1> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(V1); }
#define DEFINE_HANDLER2(NAME, RETURN, V1, V2)   class CoreExport NAME : public HandlerBase2<RETURN, V1, V2> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(V1, V2); }
#define DEFINE_HANDLER3(NAME, RETURN, V1, V2, V3)   class CoreExport NAME : public HandlerBase3<RETURN, V1, V2, V3> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(V1, V2, V3); }
#define DEFINE_HANDLER4(NAME, RETURN, V1, V2, V3, V4)   class CoreExport NAME : public HandlerBase4<RETURN, V1, V2, V3, V4> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(V1, V2, V3, V4); }
#define DEFINE_HANDLER5(NAME, RETURN, V1, V2, V3, V4, V5)   class CoreExport NAME : public HandlerBase5<RETURN, V1, V2, V3, V4, V5> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(V1, V2, V3, V4, V5); }
#define DEFINE_HANDLER6(NAME, RETURN, V1, V2, V3, V4, V5, V6)   class CoreExport NAME : public HandlerBase6<RETURN, V1, V2, V3, V4, V5, V6> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(V1, V2, V3, V4, V5, V6); }
#define DEFINE_HANDLER7(NAME, RETURN, V1, V2, V3, V4, V5, V6, V7)   class CoreExport NAME : public HandlerBase7<RETURN, V1, V2, V3, V4, V5, V6, V7> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(V1, V2, V3, V4, V5, V6, V7); }
#define DEFINE_HANDLER8(NAME, RETURN, V1, V2, V3, V4, V5, V6, V7, V8)   class CoreExport NAME : public HandlerBase8<RETURN, V1, V2, V3, V4, V5, V6, V7, V8> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(V1, V2, V3, V4, V5, V6, V7, V8); }


Define Documentation

#define DEFINE_HANDLER0 NAME,
RETURN   )     class CoreExport NAME : public HandlerBase0<RETURN> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(); }
 

These shorthand macros are used to define a functor class which only implements Call().

Most functors are like this. If you want something more complex, define them by hand.

The first parameter to each macro is the class name to define, the second parameter is the return value of Call(). The following parameters are the parameter types for Call(), and again, the macro is numbered to match the number of parameters, to prevent mistakes.

Definition at line 255 of file caller.h.

#define DEFINE_HANDLER1 NAME,
RETURN,
V1   )     class CoreExport NAME : public HandlerBase1<RETURN, V1> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(V1); }
 

Definition at line 258 of file caller.h.

#define DEFINE_HANDLER2 NAME,
RETURN,
V1,
V2   )     class CoreExport NAME : public HandlerBase2<RETURN, V1, V2> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(V1, V2); }
 

Definition at line 261 of file caller.h.

#define DEFINE_HANDLER3 NAME,
RETURN,
V1,
V2,
V3   )     class CoreExport NAME : public HandlerBase3<RETURN, V1, V2, V3> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(V1, V2, V3); }
 

Definition at line 264 of file caller.h.

#define DEFINE_HANDLER4 NAME,
RETURN,
V1,
V2,
V3,
V4   )     class CoreExport NAME : public HandlerBase4<RETURN, V1, V2, V3, V4> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(V1, V2, V3, V4); }
 

Definition at line 267 of file caller.h.

#define DEFINE_HANDLER5 NAME,
RETURN,
V1,
V2,
V3,
V4,
V5   )     class CoreExport NAME : public HandlerBase5<RETURN, V1, V2, V3, V4, V5> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(V1, V2, V3, V4, V5); }
 

Definition at line 270 of file caller.h.

#define DEFINE_HANDLER6 NAME,
RETURN,
V1,
V2,
V3,
V4,
V5,
V6   )     class CoreExport NAME : public HandlerBase6<RETURN, V1, V2, V3, V4, V5, V6> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(V1, V2, V3, V4, V5, V6); }
 

Definition at line 273 of file caller.h.

#define DEFINE_HANDLER7 NAME,
RETURN,
V1,
V2,
V3,
V4,
V5,
V6,
V7   )     class CoreExport NAME : public HandlerBase7<RETURN, V1, V2, V3, V4, V5, V6, V7> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(V1, V2, V3, V4, V5, V6, V7); }
 

Definition at line 276 of file caller.h.

#define DEFINE_HANDLER8 NAME,
RETURN,
V1,
V2,
V3,
V4,
V5,
V6,
V7,
V8   )     class CoreExport NAME : public HandlerBase8<RETURN, V1, V2, V3, V4, V5, V6, V7, V8> { InspIRCd* Server; public: NAME(InspIRCd* Srv) : Server(Srv) { } virtual ~NAME() { } virtual RETURN Call(V1, V2, V3, V4, V5, V6, V7, V8); }
 

Definition at line 279 of file caller.h.