---
name: "ACE_Message_Queue_Factory"
section: "3"
platform: "linux"
package: "libace-doc"
version: "5.0.7-4"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/ACE_Message_Queue_Factory"
---

# ACE\_Message\_Queue\_Factory(3)

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).

## NAME

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).

## SYNOPSIS

```
#include <ace/Message_Queue_T.h>
template<ACE_SYNCH_DECL>
class ACE_Message_Queue_Factory
{
  public:
    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
        );
    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
        );
    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
        );
    create_Vx_message_queue (
        size_t max_messages,
        size_t max_message_length,
        ACE_Notification_Strategy *ns = 0
        );
    create_NT_message_queue (size_t max_threads);
};
```

## DESCRIPTION

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.

## PUBLIC MEMBERS

```
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

```
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

```
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

```
create_Vx_message_queue (
    size_t max_messages,
    size_t max_message_length,
    ACE_Notification_Strategy *ns = 0
    );
```

factory method for a wrapped VxWorks message queue

```
create_NT_message_queue (size_t max_threads);
```

factory method for a NT message queue.

## AUTHOR

Doug Schmidt

## LIBRARY

ace
