---
name: "ACE_Priority_Reactor"
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_Priority_Reactor"
---

# ACE\_Priority\_Reactor(3)

Implements priority based dispatching.

## NAME

ACE\_Priority\_Reactor -  Implements priority based dispatching.

## SYNOPSIS

```
#include <ace/Priority_Reactor.h>
class ACE_Priority_Reactor : public ACE_Select_Reactor
{
  public:
    ACE_Priority_Reactor (
        ACE_Sig_Handler * = 0,
        ACE_Timer_Queue * = 0
        );
    ACE_Priority_Reactor (
        size_t size,
        int restart = 0,
        ACE_Sig_Handler * = 0,
        ACE_Timer_Queue * = 0
        );
    virtual ~ACE_Priority_Reactor (void);
    void dump (void) const;
    ACE_ALLOC_HOOK_DECLARE;
  protected:
    virtual int dispatch_io_set (
        int number_of_active_handles,
        int &number_dispatched,
        int mask,
        ACE_Handle_Set &dispatch_mask,
        ACE_Handle_Set &ready_mask,
        ACE_EH_PTMF callback
        );
  private:
    void init_bucket (void);
    typedef ACE_Unbounded_Queue<ACE_Event_Tuple> QUEUE;
    QUEUE** bucket_;
    ACE_Allocator* tuple_allocator_;
    ACE_Priority_Reactor (const ACE_Select_Reactor &);
    ACE_Priority_Reactor &operator = (const ACE_Select_Reactor &);
};
```

## DESCRIPTION

This class refines the dispatching mechanism for the Select\_Reactor by taking advantage of the priority method on ACE\_Event\_Handler.

## Initialization and termination methods.

```
ACE_Priority_Reactor (ACE_Sig_Handler * = 0, ACE_Timer_Queue * = 0);
```

Initialize ACE\_Priority\_Reactor with the default size.

```
ACE_Priority_Reactor (
    size_t size,
    int restart = 0,
    ACE_Sig_Handler * = 0,
    ACE_Timer_Queue * = 0
    );
```

Initialize ACE\_Priority\_Reactor with size size.

```
virtual ~ACE_Priority_Reactor (void);
```

Close down the select\_reactor and release all of its resources.

```
void dump (void) const;
```

Dump the state of an object.

```
ACE_ALLOC_HOOK_DECLARE;
```

Declare the dynamic allocation hooks.

## Dispatching methods.

```
virtual int dispatch_io_set (
    int number_of_active_handles,
    int &number_dispatched,
    int mask,
    ACE_Handle_Set &dispatch_mask,
    ACE_Handle_Set &ready_mask,
    ACE_EH_PTMF callback
    );
```

We simply override this function to implement the priority dispatching.

## AUTHOR

Doug Schmidt

## LIBRARY

ace
