TAO_RTEvent 4.0.0
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
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]

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.

\bugs 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() [1/2]

TAO_EC_Thread_Flags::TAO_EC_Thread_Flags ( )
inline

◆ TAO_EC_Thread_Flags() [2/2]

TAO_EC_Thread_Flags::TAO_EC_Thread_Flags ( const char * symbolic_flags)
inline

◆ ~TAO_EC_Thread_Flags()

TAO_EC_Thread_Flags::~TAO_EC_Thread_Flags ( )

Member Function Documentation

◆ default_priority()

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.

◆ flags()

long TAO_EC_Thread_Flags::flags ( ) const
inline

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

◆ operator long()

TAO_EC_Thread_Flags::operator long ( ) const
inline

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

◆ operator=()

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.

◆ parse_symbols()

void TAO_EC_Thread_Flags::parse_symbols ( const char * syms)
protected

Value of THR_SCHED_*.

◆ sched()

long TAO_EC_Thread_Flags::sched ( ) const
inline

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

◆ scope()

long TAO_EC_Thread_Flags::scope ( ) const
inline

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

Member Data Documentation

◆ flags_

long TAO_EC_Thread_Flags::flags_
protected

◆ sched_

long TAO_EC_Thread_Flags::sched_
protected

Value of THR_SCOPE_*.

◆ scope_

long TAO_EC_Thread_Flags::scope_
protected

Value of all flags OR'd together.

◆ supported_flags_

TAO_EC_Thread_Flags::Supported_Flag TAO_EC_Thread_Flags::supported_flags_
static
Initial value:
= {
}

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