|
#define | rwtMakeRunnableIOUFunctionG(R, function) |
|
#define | rwtMakeRunnableIOUFunctionGA1(R, function, A1, a1) |
|
#define | rwtMakeRunnableIOUFunctionGA2(R, function, A1, a1, A2, a2) |
|
#define | rwtMakeRunnableIOUFunctionGA3(R, function, A1, a1, A2, a2, A3, a3) |
|
#define | rwtMakeRunnableIOUFunctionM(Callee, callee, R, function) |
|
#define | rwtMakeRunnableIOUFunctionMA1(Callee, callee, R, function, A1, a1) |
|
#define | rwtMakeRunnableIOUFunctionMA2(Callee, callee, R, function, A1, a1, A2, a2) |
|
#define | rwtMakeRunnableIOUFunctionMA3(Callee, callee, R, function, A1, a1, A2, a2, A3, a3) |
|
|
template<class Callee , class R , class A1 , class AA1 > |
RWTRunnableIOUFunction< R > | rwtMakeRunnableIOUFunction (Callee &callee, R(Callee::*function)(A1), AA1 a1) |
|
template<class Callee , class R , class A1 , class A2 , class AA1 , class AA2 > |
RWTRunnableIOUFunction< R > | rwtMakeRunnableIOUFunction (Callee &callee, R(Callee::*function)(A1, A2), AA1 a1, AA2 a2) |
|
template<class Callee , class R , class A1 , class A2 , class A3 , class AA1 , class AA2 , class AA3 > |
RWTRunnableIOUFunction< R > | rwtMakeRunnableIOUFunction (Callee &callee, R(Callee::*function)(A1, A2, A3), AA1 a1, AA2 a2, AA3 a3) |
|
template<class Callee , class R > |
RWTRunnableIOUFunction< R > | rwtMakeRunnableIOUFunction (Callee &callee, R(Callee::*function)(void)) |
|
template<class R , class A1 , class AA1 > |
RWTRunnableIOUFunction< R > | rwtMakeRunnableIOUFunction (R(*function)(A1), AA1 a1) |
|
template<class R , class A1 , class A2 , class AA1 , class AA2 > |
RWTRunnableIOUFunction< R > | rwtMakeRunnableIOUFunction (R(*function)(A1, A2), AA1 a1, AA2 a2) |
|
template<class R , class A1 , class A2 , class A3 , class AA1 , class AA2 , class AA3 > |
RWTRunnableIOUFunction< R > | rwtMakeRunnableIOUFunction (R(*function)(A1, A2, A3), AA1 a1, AA2 a2, AA3 a3) |
|
template<class R > |
RWTRunnableIOUFunction< R > | rwtMakeRunnableIOUFunction (R(*function)(void)) |
|
- Header File
#include <rw/thread/rwtMakeRunnableIOUFunction.h>
The easiest way to create a runnable object with the Threads Module is to begin with rwtMakeRunnableIOUFunction(). By supplying a global or member function pointer you control what your runnable will do after starting. If you wish your runnable to start by calling a function that takes arguments, rwtMakeRunnableIOUFunction() allows you to specify the values that should be passed to that function. Note that runnables created with rwtMakeRunnableIOUFunction() allow you to extract the return value from the associated function. This distinguishes them from those created by rwtMakeRunnableFunction(), which do not.
rwtMakeRunnableIOUFunction() comes in two flavors. First, there is a set of overloaded global function templates. Since not all compilers are able to handle templates to the degree required by these functions, we also provide a corresponding set of macros. The template functions are slightly easier to use and you only have to remember one name. The macros are more portable but they do require more arguments, and as we can not overload macros, each must have a unique name.
In naming the macros we have employed a convention to make the names easier to remember. Each name begins with rwtMakeRunnableIOUFunction
, which will be followed by either a G
if the macro is expecting a global function, or an M
if it is expecting a member function. At that point the name is complete if the associated global or member function takes no arguments. Otherwise we add one of A1
, A2
, or A3
for functions with 1, 2, or 3 arguments respectively. For example, you will use macro rwtMakeRunnableIOUFunctionG() to create a runnable that calls a global function that takes no arguments. The macro rwtMakeRunnableIOUFunctionMA2() will create a runnable that calls a member function that takes two arguments.
- Example
Example Using Templates
class A {
public:
int bar(char);
};
A a;
int foo(double, long);
Handle class for functor-based runnable objects.
Definition RWTRunnableIOUFunction.h:146
RWTRunnableIOUFunction< R > rwtMakeRunnableIOUFunction(R(*function)(void))
Definition rwtMakeRunnableIOUFunction.h:61
Example Using Macros
class A {
public:
int bar(char);
};
A a;
int foo(double, long);
`x');
#define rwtMakeRunnableIOUFunctionMA1(Callee, callee, R, function, A1, a1)
Definition rwtMakeRunnableIOUFunction.h:247
#define rwtMakeRunnableIOUFunctionGA2(R, function, A1, a1, A2, a2)
Definition rwtMakeRunnableIOUFunction.h:123
Macros (for Use With Global Functions)
The macros in this section use the following naming conventions for the macro arguments:
R | Type name of the function return value. |
function | Global function pointer. |
A1 | Type name of the first argument. |
a1 | Expression that can be converted to an instance of A1 . |
A2 | Type name of the second argument. |
a2 | Expression that can be converted to an instance of A2 . |
A3 | Type name of the third argument. |
a3 | Expression that can be converted to an instance of A3 . |
Macros (for Use With Member Functions)
The macros in this section use the following naming conventions for the macro arguments:
Callee | Type name of the function's class. |
callee | Expression that results in a reference to a Callee instance. |
R | Type name of the function return value. |
function | Pointer to member function of class Callee . |
A1 | Type name of the first argument. |
a1 | Expression that can be converted to an instance of A1 . |
A2 | Type name of the second argument. |
a2 | Expression that can be converted to an instance of A2 . |
A3 | Type name of the second argument. |
a3 | Expression that can be converted to an instance of A3 . |
- See also
- RWTRunnableIOUFunction
◆ rwtMakeRunnableIOUFunctionG
#define rwtMakeRunnableIOUFunctionG |
( |
| R, |
|
|
| function ) |
◆ rwtMakeRunnableIOUFunctionGA1
#define rwtMakeRunnableIOUFunctionGA1 |
( |
| R, |
|
|
| function, |
|
|
| A1, |
|
|
| a1 ) |
◆ rwtMakeRunnableIOUFunctionGA2
#define rwtMakeRunnableIOUFunctionGA2 |
( |
| R, |
|
|
| function, |
|
|
| A1, |
|
|
| a1, |
|
|
| A2, |
|
|
| a2 ) |
◆ rwtMakeRunnableIOUFunctionGA3
#define rwtMakeRunnableIOUFunctionGA3 |
( |
| R, |
|
|
| function, |
|
|
| A1, |
|
|
| a1, |
|
|
| A2, |
|
|
| a2, |
|
|
| A3, |
|
|
| a3 ) |
◆ rwtMakeRunnableIOUFunctionM
#define rwtMakeRunnableIOUFunctionM |
( |
| Callee, |
|
|
| callee, |
|
|
| R, |
|
|
| function ) |
◆ rwtMakeRunnableIOUFunctionMA1
#define rwtMakeRunnableIOUFunctionMA1 |
( |
| Callee, |
|
|
| callee, |
|
|
| R, |
|
|
| function, |
|
|
| A1, |
|
|
| a1 ) |
◆ rwtMakeRunnableIOUFunctionMA2
#define rwtMakeRunnableIOUFunctionMA2 |
( |
| Callee, |
|
|
| callee, |
|
|
| R, |
|
|
| function, |
|
|
| A1, |
|
|
| a1, |
|
|
| A2, |
|
|
| a2 ) |
◆ rwtMakeRunnableIOUFunctionMA3
#define rwtMakeRunnableIOUFunctionMA3 |
( |
| Callee, |
|
|
| callee, |
|
|
| R, |
|
|
| function, |
|
|
| A1, |
|
|
| a1, |
|
|
| A2, |
|
|
| a2, |
|
|
| A3, |
|
|
| a3 ) |
◆ rwtMakeRunnableIOUFunction() [1/8]
template<class Callee , class R , class A1 , class AA1 >
RWTRunnableIOUFunction< R > rwtMakeRunnableIOUFunction |
( |
Callee & | callee, |
|
|
R(Callee::* | function )(A1), |
|
|
AA1 | a1 ) |
|
inline |
◆ rwtMakeRunnableIOUFunction() [2/8]
template<class Callee , class R , class A1 , class A2 , class AA1 , class AA2 >
RWTRunnableIOUFunction< R > rwtMakeRunnableIOUFunction |
( |
Callee & | callee, |
|
|
R(Callee::* | function )(A1, A2), |
|
|
AA1 | a1, |
|
|
AA2 | a2 ) |
|
inline |
◆ rwtMakeRunnableIOUFunction() [3/8]
template<class Callee , class R , class A1 , class A2 , class A3 , class AA1 , class AA2 , class AA3 >
RWTRunnableIOUFunction< R > rwtMakeRunnableIOUFunction |
( |
Callee & | callee, |
|
|
R(Callee::* | function )(A1, A2, A3), |
|
|
AA1 | a1, |
|
|
AA2 | a2, |
|
|
AA3 | a3 ) |
|
inline |
- Deprecated
- As of SourcePro 12.5, use RWTRunnableIOUFunction::make(rwBind(function, callee, a1, a2, a3)) instead.
Creates an RWTRunnableIOUFunction set to call callee.function(a1,a2,a3)
. a1, a2
, and a3 must be convertible to instances of types A1
, A2
, and A3
respectively.
◆ rwtMakeRunnableIOUFunction() [4/8]
template<class Callee , class R >
◆ rwtMakeRunnableIOUFunction() [5/8]
template<class R , class A1 , class AA1 >
◆ rwtMakeRunnableIOUFunction() [6/8]
template<class R , class A1 , class A2 , class AA1 , class AA2 >
◆ rwtMakeRunnableIOUFunction() [7/8]
template<class R , class A1 , class A2 , class A3 , class AA1 , class AA2 , class AA3 >
- Deprecated
- As of SourcePro 12.5, use RWTRunnableIOUFunction::make(rwBind(function, a1, a2, a3)) instead.
Creates an RWTRunnableIOUFunction set to call function(a1,a2,a3)
. a1, a2, and a3 must be convertible to instances of types A1
, A2
, and A3
respectively.
◆ rwtMakeRunnableIOUFunction() [8/8]