Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
Threads Module Reference Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

rwtMakeRunnableGuard()

Module:  Threads   Package:  Threading


Global Functions and Macros

Local Index

Members

Non-Members

Header File

#include <rw/thread/rwtMakeRunnableGuard.h>

Description

An RWRunnableGuard is a typedef to a functor used in conjection with the RWTPCValBufferBaseGuarded and derived classes, templatized on a RWRunnable. The runnable server classes RWRunnableServer and RWServerPool use these functors internally. A runnable guard functor is used by the RWTPCValBufferBaseGuarded classes to select the next enqueued runnable to execute. It is designed to allow a runnable to remain in a queue until some condition is satisfied.

When a client requests a runnable from a runnable queue, the queue selects the next runnable to execute by traversing any enqueued runnables, and executing their guard functors, until it finds a runnable whose guard functor evaluates to true. That runnable is then returned to the client.

Example

Global Typedef

typedef RWTFunctorR0<bool>RWRunnableGuard

Global Function Templates

The function templates in this section use the following naming conventions for their arguments:

template <class DR>
RWRunnableGuard
rwtMakeRunnableGuard(DR (*function)(void));
template <class DR, class A1, class AA1>
RWRunnableGuard
rwtMakeRunnableGuard(DR (*function)(A1),AA1 a1);
template <class DR, class A1, class A2, class AA1, class AA2>
RWRunnableGuard
rwtMakeRunnableGuard(DR (*function)(A1,A2),AA1 a1,AA2 a2);
template <class DR, class A1, class A2, class A3,
          class AA1, class AA2, class AA3>
RWRunnableGuard
rwtMakeRunnableGuard(DR (*function)(A1,A2,A3),AA1 a1,
                    AA2 a2,AA3 a3);
template <class Callee, class DR>
RWRunnableGuard
rwtMakeRunnableGuard(Callee& callee, 
                    DR(Callee::*function)(void));
template <class Callee, class DR, class A1, class AA1>
RWRunnableGuard
rwtMakeRunnableGuard(Callee& callee, DR(Callee::*function)(A1),
                    AA1 a1);
template <class Callee, class DR, class A1, class AA1, 
class A2, class AA2> RWRunnableGuard rwtMakeRunnableGuard(Callee& callee, DR(Callee::*function)(A1,A2), AA1 a1, AA2 a2);
template <class Callee, class DR, class A1, 
class AA1, class A2, class AA2, class A3, class AA3> RWRunnableGuard rwtMakeRunnableGuard(Callee& callee, DR (Callee::*function)(A1,A2,A3), AA1 a1, AA2 a2, AA3 a3);

Macros (for Use With Global Functions)

The macros in this section use the following naming conventions for the macro arguments:

rwtMakeRunnableGuardG(DR,function)
rwtMakeRunnableGuardGA1(DR,function,A1,a1)
rwtMakeRunnableGuardGA2(DR,function,A1,a1,A2,a2)
rwtMakeRunnableGuardGA3(DR,function,A1,a1,A2,a2,A3,a3)

Macros (for Use With Member Functions)

The macros in this section use the following naming conventions for the macro arguments:

rwtMakeRunnableGuardM(Callee,callee,DR,function)
rwtMakeRunnableGuardMA1(Callee,callee,DR,function,A1,a1)
rwtMakeRunnableGuardMA2(Callee,callee,DR,function,A1,a1,A2,a2)
rwtMakeRunnableGuardMA3(Callee,callee,DR,
                       function,A1,a1,A2,a2,A3,a3)

See Also

RWRunnableServer, RWServerPool



Previous fileTop of DocumentContentsIndex pageNext file

© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.