ACE_Dynamic_Message_Queue
class or any other class which needs to manage the priorities
of a collection of ACE_Message_Blocks dynamically.
#include <ace/Message_Block.h>
class ACE_Dynamic_Message_Strategy {
public:enum Priority_Status{ PENDING = 0x01, LATE = 0x02, BEYOND_LATE = 0x04, ANY_STATUS = 0x07 };ACE_Dynamic_Message_Strategy ( u_long static_bit_field_mask, u_long static_bit_field_shift, u_long dynamic_priority_max, u_long dynamic_priority_offset );virtual ~ACE_Dynamic_Message_Strategy (void);Priority_Status priority_status ( ACE_Message_Block &mb, const ACE_Time_Value &tv );u_long static_bit_field_mask (void);void static_bit_field_mask (u_long);u_long static_bit_field_shift (void);void static_bit_field_shift (u_long);u_long dynamic_priority_max (void);void dynamic_priority_max (u_long);u_long dynamic_priority_offset (void);void dynamic_priority_offset (u_long);virtual void dump (void) const;protected:virtual void convert_priority ( ACE_Time_Value &priority, const ACE_Message_Block &mb ) = 0;u_long static_bit_field_mask_;u_long static_bit_field_shift_;u_long dynamic_priority_max_;u_long dynamic_priority_offset_;ACE_Time_Value max_late_;ACE_Time_Value min_pending_;ACE_Time_Value pending_shift_;};
ACE_Dynamic_Message_Strategy (
u_long static_bit_field_mask,
u_long static_bit_field_shift,
u_long dynamic_priority_max,
u_long dynamic_priority_offset
);
virtual ~ACE_Dynamic_Message_Strategy (void);
Priority_Status priority_status (
ACE_Message_Block &mb,
const ACE_Time_Value &tv
);
u_long static_bit_field_mask (void);
void static_bit_field_mask (u_long);
u_long static_bit_field_shift (void);
void static_bit_field_shift (u_long);
u_long dynamic_priority_max (void);
void dynamic_priority_max (u_long);
u_long dynamic_priority_offset (void);
void dynamic_priority_offset (u_long);
virtual void dump (void) const;
schmidt@cs.wustl.edu