TAO_RTEvent  2.0.8
Classes | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes
TAO_EC_Thread_Flags Class Reference

Parse thread flags from string to a long. More...

#include <EC_Thread_Flags.h>

Collaboration diagram for TAO_EC_Thread_Flags:
Collaboration graph
[legend]

List of all members.

Classes

struct  Supported_Flag

Public Member Functions

 TAO_EC_Thread_Flags ()
 TAO_EC_Thread_Flags (const char *symbolic_flags)
 See operator=()
 ~TAO_EC_Thread_Flags ()
const TAO_EC_Thread_Flagsoperator= (const char *symbolic_flags)
 Assign a new set of symbolic flags, setting flags, scope, and sched as possible.
long flags () const
 Returns numeric equivalent of the thread flags suitable for passing to ACE_Task::activate.
long scope () const
 Returns value of THR_SCOPE_* used, or zero if unknown.
long sched () const
 Returns value of THR_SCHED_* used, or zero if unknown.
 operator long () const
 Synonym for flags(), i.e., syntactic sugar.
long default_priority () const
 Return an acceptable default priority for the scheduler returned by sched().

Static Public Attributes

static Supported_Flag supported_flags_ []

Protected Member Functions

void parse_symbols (const char *syms)
 Value of THR_SCHED_*.

Protected Attributes

long flags_
long scope_
 Value of all flags OR'd together.
long sched_
 Value of THR_SCOPE_*.

Detailed Description

Parse thread flags from string to a long.

Encapsulate flags used for creating threads with ACE_OS::thr_create and ACE_Task::activate.

Note:
On platforms that do not support the thread schedulers, the ACE OS adaptation layer preserves the symbols for THR_SCHED_*, but defines them as zero. Thus, on such platforms, setting a scheduler in the flags, then inquiring for the scheduler type will yield the same result as an unknown or unset scheduler.

This should really be part of ACE or ACE_OS, and maybe someday it will, but right now it's not.


Constructor & Destructor Documentation

TAO_EC_Thread_Flags::TAO_EC_Thread_Flags ( ) [inline]
TAO_EC_Thread_Flags::TAO_EC_Thread_Flags ( const char *  symbolic_flags) [inline]
TAO_EC_Thread_Flags::~TAO_EC_Thread_Flags ( )

Member Function Documentation

long TAO_EC_Thread_Flags::default_priority ( ) const

Return an acceptable default priority for the scheduler returned by sched().

Returns:
the priority, or ACE_DEFAULT_THREAD_PRIORITY if the scheduler is unknown.
long TAO_EC_Thread_Flags::flags ( void  ) const [inline]

Returns numeric equivalent of the thread flags suitable for passing to ACE_Task::activate.

TAO_EC_Thread_Flags::operator long ( ) const [inline]

Synonym for flags(), i.e., syntactic sugar.

const TAO_EC_Thread_Flags& TAO_EC_Thread_Flags::operator= ( const char *  symbolic_flags) [inline]

Assign a new set of symbolic flags, setting flags, scope, and sched as possible.

The flags can be symbolic, separated by the vertical bar ('|'). In case a platform supports a creation flag not available symbolically, the user can specify a numeric value any place a symbol could be used.

See also:
TAO_EC_Thread_Flags::supported_flags
Note:
The sched value only gets set if the scheduler is specified using symbols.
void TAO_EC_Thread_Flags::parse_symbols ( const char *  syms) [protected]

Value of THR_SCHED_*.

long TAO_EC_Thread_Flags::sched ( ) const [inline]

Returns value of THR_SCHED_* used, or zero if unknown.

long TAO_EC_Thread_Flags::scope ( ) const [inline]

Returns value of THR_SCOPE_* used, or zero if unknown.


Member Data Documentation

long TAO_EC_Thread_Flags::flags_ [protected]
long TAO_EC_Thread_Flags::sched_ [protected]

Value of THR_SCOPE_*.

long TAO_EC_Thread_Flags::scope_ [protected]

Value of all flags OR'd together.

Initial value:
 {

















 
  }

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines