Ocean
Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 > Class Template Reference

This class implements a container for callback functions. More...

Inheritance diagram for Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >:

Public Types

typedef RT ReturnType
 Definition of the return type of this callback object. More...
 
typedef PT0 ParameterType0
 Definition of the 1st parameter type of this callback object. More...
 
typedef PT1 ParameterType1
 Definition of the 2rd parameter type of this callback object. More...
 
typedef PT2 ParameterType2
 Definition of the 3rd parameter type of this callback object. More...
 
typedef PT3 ParameterType3
 Definition of the 4th parameter type of this callback object. More...
 
typedef PT4 ParameterType4
 Definition of the 5th parameter type of this callback object. More...
 
typedef PT5 ParameterType5
 Definition of the 6th parameter type of this callback object. More...
 
typedef PT6 ParameterType6
 Definition of the 7th parameter type of this callback object. More...
 
typedef PT7 ParameterType7
 Definition of the 8th parameter type of this callback object. More...
 
typedef PT8 ParameterType8
 Definition of the 9th parameter type of this callback object. More...
 
typedef PT9 ParameterType9
 Definition of the 10th parameter type of this callback object. More...
 
typedef PT10 ParameterType10
 Definition of the 11th parameter type of this callback object. More...
 
typedef PT11 ParameterType11
 Definition of the 12th parameter type of this callback object. More...
 
typedef PT12 ParameterType12
 Definition of the 13th parameter type of this callback object. More...
 
typedef PT13 ParameterType13
 Definition of the 14th parameter type of this callback object. More...
 
typedef PT14 ParameterType14
 Definition of the 15th parameter type of this callback object. More...
 
typedef PT15 ParameterType15
 Definition of the 16th parameter type of this callback object. More...
 
typedef PT16 ParameterType16
 Definition of the 17th parameter type of this callback object. More...
 
typedef PT17 ParameterType17
 Definition of the 18th parameter type of this callback object. More...
 
typedef PT18 ParameterType18
 Definition of the 19th parameter type of this callback object. More...
 
typedef PT19 ParameterType19
 Definition of the 20th parameter type of this callback object. More...
 

Public Member Functions

 Callback ()
 Creates an empty callback container. More...
 
 Callback (const Callback &callback)
 Copies a callback container. More...
 
template<typename CT >
 Callback (CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Type function)
 Creates a new callback container for a member function. More...
 
 Callback (typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Type function)
 Creates a new callback container for a static function. More...
 
virtual ~Callback ()
 Destructs a callback container object. More...
 
bool isNull () const
 Returns whether this container holds no function. More...
 
RT operator() (PT0 param0=PT0(), PT1 param1=PT1(), PT2 param2=PT2(), PT3 param3=PT3(), PT4 param4=PT4(), PT5 param5=PT5(), PT6 param6=PT6(), PT7 param7=PT7(), PT8 param8=PT8(), PT9 param9=PT9(), PT10 param10=PT10(), PT11 param11=PT11(), PT12 param12=PT12(), PT13 param13=PT13(), PT14 param14=PT14(), PT15 param15=PT15(), PT16 param16=PT16(), PT17 param17=PT17(), PT18 param18=PT18(), PT19 param19=PT19()) const
 Calls the encapsulated callback function. More...
 
Callbackoperator= (const Callback &callback)
 Assigns a callback container. More...
 
bool operator== (const Callback &callback) const
 Returns whether two callback container addressing the same class object and the same local member function. More...
 
bool operator!= (const Callback &callback) const
 Returns whether two callback container addressing not the same class object or not the same local member function. More...
 
 operator bool () const
 Returns whether this container holds an encapsulated function. More...
 

Static Public Member Functions

template<typename CT >
static Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 > create (CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Type function)
 Creates a new callback container for a member function. More...
 
static Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 > createStatic (typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Type function)
 Creates a new callback container for a static function. More...
 

Private Member Functions

 Callback (FunctionBase< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 > *base)
 Creates a new function container by a given base function. More...
 

Private Attributes

FunctionBase< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 > * callbackFunction
 Base function container. More...
 

Detailed Description

template<typename RT, typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
class Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >

This class implements a container for callback functions.

Use this callback container to encapsulate callback functions to static functions or member functions (of classes).
For member functions, this class is independent from the function's owner (class) and therefore can be stored without the definition of the class type.
This template class holds several template parameters, all specifying return and function parameter types.

Template Parameters
RTSpecifies the return type of the callback function
PT0Specifies the 1st possible function parameter type
PT1Specifies the 2rd possible function parameter type
PT2Specifies the 3rd possible function parameter type
PT3Specifies the 4th possible function parameter type
PT4Specifies the 5th possible function parameter type
PT5Specifies the 6th possible function parameter type
PT6Specifies the 7th possible function parameter type
PT7Specifies the 8th possible function parameter type
PT8Specifies the 9th possible function parameter type
PT9Specifies the 10th possible function parameter type
PT10Specifies the 11th possible function parameter type
PT11Specifies the 12th possible function parameter type
PT12Specifies the 13th possible function parameter type
PT13Specifies the 14th possible function parameter type
PT14Specifies the 15th possible function parameter type
PT15Specifies the 16th possible function parameter type
PT16Specifies the 17th possible function parameter type
PT17Specifies the 18th possible function parameter type
PT18Specifies the 19th possible function parameter type
PT19Specifies the 20th possible function parameter type
See also
Callbacks, ConcurrentCallbacks.

See the following code tutorial:

// The best way to use the callback function container is to combine it with a typedef.
// Some class with a member function
class TestClass
{
public:
// First member function later handled by the callback
void firstMemberFunction();
// Second member function later handled by the callback
bool secondMemberFunction(int param0, const unsigned char* param1);
// Static function later handled by the callback
static std::string staticFunction(short param);
}
static void globalFunction()
{
// do anything
}
// Definition of a callback function with not return value and no function parameter
typedef Callback<void> FirstCallback;
// Definition of a callback function with 'bool' as return type and 'int' and 'unsigned char*' as function parameter
typedef Callback<bool, int, const unsigned char*> SecondCallback;
// Definition of a callback function with 'std::string' as return type and 'short' as function parameter
typedef Callback<std::string, short> ThirdCallback;
// Any function using the callback
void main()
{
// Instance of the test class
TestClass testClassObject;
// Instance of the first callback function to the member function 'firstMemberFunction' of the above created instance of TestClass
FirstCallback firstCallback(testClassObject, &TestClass::firstMemberFunction);
// Instance of the second callback function to the member function 'secondMemberFunction' of the above created instance of TestClass
SecondCallback secondCallback(testClassObject, &TestClass::secondMemberFunction);
// Instance of the third callback function to the static function 'staticFunction' of the above created instance of TestClass
ThirdCallback thirdCallback(&TestClass::staticFunction);
// Instance of the fourth callback function to the global function
FirstCallback fourthCallback(&globalFunction);
// Usage of the first callback
firstCallback();
// Usage of the second callback
bool resultBool = secondCallback(5, "test");
// Usage of the third callback
std::string resultString = thirdCallback(3);
// Usage of the fourth callback
fourthCallback();
}

Member Typedef Documentation

◆ ParameterType0

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT0 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType0

Definition of the 1st parameter type of this callback object.

◆ ParameterType1

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT1 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType1

Definition of the 2rd parameter type of this callback object.

◆ ParameterType10

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT10 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType10

Definition of the 11th parameter type of this callback object.

◆ ParameterType11

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT11 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType11

Definition of the 12th parameter type of this callback object.

◆ ParameterType12

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT12 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType12

Definition of the 13th parameter type of this callback object.

◆ ParameterType13

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT13 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType13

Definition of the 14th parameter type of this callback object.

◆ ParameterType14

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT14 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType14

Definition of the 15th parameter type of this callback object.

◆ ParameterType15

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT15 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType15

Definition of the 16th parameter type of this callback object.

◆ ParameterType16

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT16 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType16

Definition of the 17th parameter type of this callback object.

◆ ParameterType17

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT17 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType17

Definition of the 18th parameter type of this callback object.

◆ ParameterType18

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT18 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType18

Definition of the 19th parameter type of this callback object.

◆ ParameterType19

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT19 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType19

Definition of the 20th parameter type of this callback object.

◆ ParameterType2

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT2 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType2

Definition of the 3rd parameter type of this callback object.

◆ ParameterType3

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT3 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType3

Definition of the 4th parameter type of this callback object.

◆ ParameterType4

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT4 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType4

Definition of the 5th parameter type of this callback object.

◆ ParameterType5

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT5 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType5

Definition of the 6th parameter type of this callback object.

◆ ParameterType6

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT6 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType6

Definition of the 7th parameter type of this callback object.

◆ ParameterType7

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT7 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType7

Definition of the 8th parameter type of this callback object.

◆ ParameterType8

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT8 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType8

Definition of the 9th parameter type of this callback object.

◆ ParameterType9

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef PT9 Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ParameterType9

Definition of the 10th parameter type of this callback object.

◆ ReturnType

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
typedef RT Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::ReturnType

Definition of the return type of this callback object.

Constructor & Destructor Documentation

◆ Callback() [1/5]

template<typename RT , typename PT0 , typename PT1 , typename PT2 , typename PT3 , typename PT4 , typename PT5 , typename PT6 , typename PT7 , typename PT8 , typename PT9 , typename PT10 , typename PT11 , typename PT12 , typename PT13 , typename PT14 , typename PT15 , typename PT16 , typename PT17 , typename PT18 , typename PT19 >
Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Callback
inline

Creates an empty callback container.

◆ Callback() [2/5]

template<typename RT , typename PT0 , typename PT1 , typename PT2 , typename PT3 , typename PT4 , typename PT5 , typename PT6 , typename PT7 , typename PT8 , typename PT9 , typename PT10 , typename PT11 , typename PT12 , typename PT13 , typename PT14 , typename PT15 , typename PT16 , typename PT17 , typename PT18 , typename PT19 >
Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Callback ( const Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 > &  callback)
inline

Copies a callback container.

Parameters
callbackThe callback container to copy

◆ Callback() [3/5]

template<typename RT , typename PT0 , typename PT1 , typename PT2 , typename PT3 , typename PT4 , typename PT5 , typename PT6 , typename PT7 , typename PT8 , typename PT9 , typename PT10 , typename PT11 , typename PT12 , typename PT13 , typename PT14 , typename PT15 , typename PT16 , typename PT17 , typename PT18 , typename PT19 >
template<typename CT >
Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Callback ( CT &  object,
typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Type  function 
)
inline

Creates a new callback container for a member function.

Parameters
objectClass object holding the member function
functionLocal function pointer of the member function

◆ Callback() [4/5]

template<typename RT , typename PT0 , typename PT1 , typename PT2 , typename PT3 , typename PT4 , typename PT5 , typename PT6 , typename PT7 , typename PT8 , typename PT9 , typename PT10 , typename PT11 , typename PT12 , typename PT13 , typename PT14 , typename PT15 , typename PT16 , typename PT17 , typename PT18 , typename PT19 >
Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Callback ( typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Type  function)
inlineexplicit

Creates a new callback container for a static function.

Parameters
functionLocal function pointer of the static function

◆ ~Callback()

template<typename RT , typename PT0 , typename PT1 , typename PT2 , typename PT3 , typename PT4 , typename PT5 , typename PT6 , typename PT7 , typename PT8 , typename PT9 , typename PT10 , typename PT11 , typename PT12 , typename PT13 , typename PT14 , typename PT15 , typename PT16 , typename PT17 , typename PT18 , typename PT19 >
Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::~Callback
inlinevirtual

Destructs a callback container object.

◆ Callback() [5/5]

template<typename RT , typename PT0 , typename PT1 , typename PT2 , typename PT3 , typename PT4 , typename PT5 , typename PT6 , typename PT7 , typename PT8 , typename PT9 , typename PT10 , typename PT11 , typename PT12 , typename PT13 , typename PT14 , typename PT15 , typename PT16 , typename PT17 , typename PT18 , typename PT19 >
Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Callback ( FunctionBase< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 > *  base)
inlineexplicitprivate

Creates a new function container by a given base function.

Parameters
baseThe base function to create a new container form

Member Function Documentation

◆ create()

template<typename RT , typename PT0 , typename PT1 , typename PT2 , typename PT3 , typename PT4 , typename PT5 , typename PT6 , typename PT7 , typename PT8 , typename PT9 , typename PT10 , typename PT11 , typename PT12 , typename PT13 , typename PT14 , typename PT15 , typename PT16 , typename PT17 , typename PT18 , typename PT19 >
template<typename CT >
Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 > Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::create ( CT &  object,
typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Type  function 
)
inlinestatic

Creates a new callback container for a member function.

Parameters
objectClass object holding the member function
functionLocal function pointer of the member function
Returns
New callback container

◆ createStatic()

template<typename RT , typename PT0 , typename PT1 , typename PT2 , typename PT3 , typename PT4 , typename PT5 , typename PT6 , typename PT7 , typename PT8 , typename PT9 , typename PT10 , typename PT11 , typename PT12 , typename PT13 , typename PT14 , typename PT15 , typename PT16 , typename PT17 , typename PT18 , typename PT19 >
Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 > Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::createStatic ( typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Type  function)
inlinestatic

Creates a new callback container for a static function.

Parameters
functionLocal function pointer of the static function
Returns
New callback container

◆ isNull()

template<typename RT , typename PT0 , typename PT1 , typename PT2 , typename PT3 , typename PT4 , typename PT5 , typename PT6 , typename PT7 , typename PT8 , typename PT9 , typename PT10 , typename PT11 , typename PT12 , typename PT13 , typename PT14 , typename PT15 , typename PT16 , typename PT17 , typename PT18 , typename PT19 >
bool Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::isNull
inline

Returns whether this container holds no function.

Returns
True, if so

◆ operator bool()

template<typename RT , typename PT0 , typename PT1 , typename PT2 , typename PT3 , typename PT4 , typename PT5 , typename PT6 , typename PT7 , typename PT8 , typename PT9 , typename PT10 , typename PT11 , typename PT12 , typename PT13 , typename PT14 , typename PT15 , typename PT16 , typename PT17 , typename PT18 , typename PT19 >
Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::operator bool
inlineexplicit

Returns whether this container holds an encapsulated function.

Returns
True, if so

◆ operator!=()

template<typename RT , typename PT0 , typename PT1 , typename PT2 , typename PT3 , typename PT4 , typename PT5 , typename PT6 , typename PT7 , typename PT8 , typename PT9 , typename PT10 , typename PT11 , typename PT12 , typename PT13 , typename PT14 , typename PT15 , typename PT16 , typename PT17 , typename PT18 , typename PT19 >
bool Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::operator!= ( const Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 > &  callback) const
inline

Returns whether two callback container addressing not the same class object or not the same local member function.

Parameters
callbackRight callback to check
Returns
True, if so

◆ operator()()

template<typename RT , typename PT0 , typename PT1 , typename PT2 , typename PT3 , typename PT4 , typename PT5 , typename PT6 , typename PT7 , typename PT8 , typename PT9 , typename PT10 , typename PT11 , typename PT12 , typename PT13 , typename PT14 , typename PT15 , typename PT16 , typename PT17 , typename PT18 , typename PT19 >
RT Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::operator() ( PT0  param0 = PT0(),
PT1  param1 = PT1(),
PT2  param2 = PT2(),
PT3  param3 = PT3(),
PT4  param4 = PT4(),
PT5  param5 = PT5(),
PT6  param6 = PT6(),
PT7  param7 = PT7(),
PT8  param8 = PT8(),
PT9  param9 = PT9(),
PT10  param10 = PT10(),
PT11  param11 = PT11(),
PT12  param12 = PT12(),
PT13  param13 = PT13(),
PT14  param14 = PT14(),
PT15  param15 = PT15(),
PT16  param16 = PT16(),
PT17  param17 = PT17(),
PT18  param18 = PT18(),
PT19  param19 = PT19() 
) const
inline

Calls the encapsulated callback function.

Parameters
param0Possible first function parameter
param1Possible second function parameter
param2Possible third function parameter
param3Possible fourth function parameter
param4Possible fifth function parameter
param5Possible sixth function parameter
param6Possible seventh function parameter
param7Possible eighth function parameter
param8Possible ninth function parameter
param9Possible tenth function parameter
param1011th function parameter
param1112th function parameter
param1213th function parameter
param1314th function parameter
param1415th function parameter
param1516th function parameter
param1617th function parameter
param1718th function parameter
param1819th function parameter
param1920th function parameter
Returns
Return value

◆ operator=()

template<typename RT , typename PT0 , typename PT1 , typename PT2 , typename PT3 , typename PT4 , typename PT5 , typename PT6 , typename PT7 , typename PT8 , typename PT9 , typename PT10 , typename PT11 , typename PT12 , typename PT13 , typename PT14 , typename PT15 , typename PT16 , typename PT17 , typename PT18 , typename PT19 >
Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 > & Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::operator= ( const Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 > &  callback)
inline

Assigns a callback container.

Parameters
callbackThe callback container to assign
Returns
Reference to this object

◆ operator==()

template<typename RT , typename PT0 , typename PT1 , typename PT2 , typename PT3 , typename PT4 , typename PT5 , typename PT6 , typename PT7 , typename PT8 , typename PT9 , typename PT10 , typename PT11 , typename PT12 , typename PT13 , typename PT14 , typename PT15 , typename PT16 , typename PT17 , typename PT18 , typename PT19 >
bool Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::operator== ( const Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 > &  callback) const
inline

Returns whether two callback container addressing the same class object and the same local member function.

Parameters
callbackRight callback to check
Returns
True, if so

Field Documentation

◆ callbackFunction

template<typename RT , typename PT0 = NullClass, typename PT1 = NullClass, typename PT2 = NullClass, typename PT3 = NullClass, typename PT4 = NullClass, typename PT5 = NullClass, typename PT6 = NullClass, typename PT7 = NullClass, typename PT8 = NullClass, typename PT9 = NullClass, typename PT10 = NullClass, typename PT11 = NullClass, typename PT12 = NullClass, typename PT13 = NullClass, typename PT14 = NullClass, typename PT15 = NullClass, typename PT16 = NullClass, typename PT17 = NullClass, typename PT18 = NullClass, typename PT19 = NullClass>
FunctionBase<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>* Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::callbackFunction
private

Base function container.


The documentation for this class was generated from the following file: