ACE_Message_Queue_Factory<> Class Template Reference

ACE_Message_Queue_Factory is a static factory class template which provides a separate factory method for each of the major kinds of priority based message dispatching: static, earliest deadline first (EDF), and minimum laxity first (MLF). More...

#include <Message_Queue_T.h>

List of all members.

Static Public Member Functions

static ACE_Message_Queue<
ACE_SYNCH_USE > * 
create_static_message_queue (size_t hwm=ACE_Message_Queue_Base::DEFAULT_HWM, size_t lwm=ACE_Message_Queue_Base::DEFAULT_LWM, ACE_Notification_Strategy *=0)
 Factory method for a statically prioritized ACE_Message_Queue.
static ACE_Dynamic_Message_Queue<
ACE_SYNCH_USE > * 
create_deadline_message_queue (size_t hwm=ACE_Message_Queue_Base::DEFAULT_HWM, size_t lwm=ACE_Message_Queue_Base::DEFAULT_LWM, ACE_Notification_Strategy *=0, u_long static_bit_field_mask=0x3FFUL, u_long static_bit_field_shift=10, u_long dynamic_priority_max=0x3FFFFFUL, u_long dynamic_priority_offset=0x200000UL)
 Factory method for a dynamically prioritized (by time to deadline) ACE_Dynamic_Message_Queue.
static ACE_Dynamic_Message_Queue<
ACE_SYNCH_USE > * 
create_laxity_message_queue (size_t hwm=ACE_Message_Queue_Base::DEFAULT_HWM, size_t lwm=ACE_Message_Queue_Base::DEFAULT_LWM, ACE_Notification_Strategy *=0, u_long static_bit_field_mask=0x3FFUL, u_long static_bit_field_shift=10, u_long dynamic_priority_max=0x3FFFFFUL, u_long dynamic_priority_offset=0x200000UL)
 Factory method for a dynamically prioritized (by laxity) ACE_Dynamic_Message_Queue.


Detailed Description

template<ACE_SYNCH_DECL>
class ACE_Message_Queue_Factory<>

ACE_Message_Queue_Factory is a static factory class template which provides a separate factory method for each of the major kinds of priority based message dispatching: static, earliest deadline first (EDF), and minimum laxity first (MLF).

The ACE_Dynamic_Message_Queue class assumes responsibility for releasing the resources of the strategy with which it was constructed: the user of a message queue constructed by any of these factory methods is only responsible for ensuring destruction of the message queue itself.

Definition at line 915 of file Message_Queue_T.h.


Member Function Documentation

template<ACE_SYNCH_DECL >
ACE_Dynamic_Message_Queue< ACE_SYNCH_USE > * ACE_Message_Queue_Factory<>::create_deadline_message_queue ( size_t  hwm = ACE_Message_Queue_Base::DEFAULT_HWM,
size_t  lwm = ACE_Message_Queue_Base::DEFAULT_LWM,
ACE_Notification_Strategy = 0,
u_long  static_bit_field_mask = 0x3FFUL,
u_long  static_bit_field_shift = 10,
u_long  dynamic_priority_max = 0x3FFFFFUL,
u_long  dynamic_priority_offset = 0x200000UL 
) [static]

Factory method for a dynamically prioritized (by time to deadline) ACE_Dynamic_Message_Queue.

Definition at line 2762 of file Message_Queue_T.cpp.

References ACE_NEW_RETURN.

02769 {
02770   ACE_Deadline_Message_Strategy *adms = 0;
02771 
02772   ACE_NEW_RETURN (adms,
02773                   ACE_Deadline_Message_Strategy (static_bit_field_mask,
02774                                                  static_bit_field_shift,
02775                                                  dynamic_priority_max,
02776                                                  dynamic_priority_offset),
02777                   0);
02778 
02779   ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> *tmp = 0;
02780   ACE_NEW_RETURN (tmp,
02781                   ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> (*adms, hwm, lwm, ns),
02782                   0);
02783   return tmp;
02784 }

template<ACE_SYNCH_DECL >
ACE_Dynamic_Message_Queue< ACE_SYNCH_USE > * ACE_Message_Queue_Factory<>::create_laxity_message_queue ( size_t  hwm = ACE_Message_Queue_Base::DEFAULT_HWM,
size_t  lwm = ACE_Message_Queue_Base::DEFAULT_LWM,
ACE_Notification_Strategy = 0,
u_long  static_bit_field_mask = 0x3FFUL,
u_long  static_bit_field_shift = 10,
u_long  dynamic_priority_max = 0x3FFFFFUL,
u_long  dynamic_priority_offset = 0x200000UL 
) [static]

Factory method for a dynamically prioritized (by laxity) ACE_Dynamic_Message_Queue.

Definition at line 2791 of file Message_Queue_T.cpp.

References ACE_NEW_RETURN.

02798 {
02799   ACE_Laxity_Message_Strategy *alms = 0;
02800 
02801   ACE_NEW_RETURN (alms,
02802                   ACE_Laxity_Message_Strategy (static_bit_field_mask,
02803                                                static_bit_field_shift,
02804                                                dynamic_priority_max,
02805                                                dynamic_priority_offset),
02806                   0);
02807 
02808   ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> *tmp = 0;
02809   ACE_NEW_RETURN (tmp,
02810                   ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> (*alms, hwm, lwm, ns),
02811                   0);
02812   return tmp;
02813 }

template<ACE_SYNCH_DECL >
ACE_Message_Queue< ACE_SYNCH_USE > * ACE_Message_Queue_Factory<>::create_static_message_queue ( size_t  hwm = ACE_Message_Queue_Base::DEFAULT_HWM,
size_t  lwm = ACE_Message_Queue_Base::DEFAULT_LWM,
ACE_Notification_Strategy = 0 
) [static]

Factory method for a statically prioritized ACE_Message_Queue.

Definition at line 2746 of file Message_Queue_T.cpp.

References ACE_NEW_RETURN.

02749 {
02750   ACE_Message_Queue<ACE_SYNCH_USE> *tmp = 0;
02751 
02752   ACE_NEW_RETURN (tmp,
02753                   ACE_Message_Queue<ACE_SYNCH_USE> (hwm, lwm, ns),
02754                   0);
02755   return tmp;
02756 }


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:35:20 2010 for ACE by  doxygen 1.4.7