---
name: "ACE_XtReactor"
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_XtReactor"
---

# ACE\_XtReactor(3)

An object-oriented event demultiplexor and event handler dispatcher that uses the X Toolkit functions.

## NAME

ACE\_XtReactor -  An object-oriented event demultiplexor and event handler dispatcher that uses the X Toolkit functions.

## SYNOPSIS

```
#include <ace/XtReactor.h>
class ACE_XtReactor : public ACE_Select_Reactor
{
  public:
    ACE_XtReactor (
        XtAppContext context = 0,
        size_t size = DEFAULT_SIZE,
        int restart = 0,
        ACE_Sig_Handler * = 0
        );
    virtual ~ACE_XtReactor (void);
    XtAppContext context (void) const;
    void context (XtAppContext);
    virtual long schedule_timer (
        ACE_Event_Handler *handler,
        const void *arg,
        const ACE_Time_Value &delta_time,
        const ACE_Time_Value &interval
        );
    virtual int reset_timer_interval (
        long timer_id,
        const ACE_Time_Value &interval
        );
    virtual int cancel_timer (
        ACE_Event_Handler *handler,
        int dont_call_handle_close = 1
        );
    virtual int cancel_timer (
        long timer_id,
        const void **arg = 0,
        int dont_call_handle_close = 1
        );
  protected:
    virtual int register_handler_i (
        ACE_HANDLE handle,
        ACE_Event_Handler *handler,
        ACE_Reactor_Mask mask
        );
    virtual int register_handler_i (
        const ACE_Handle_Set &handles,
        ACE_Event_Handler *handler,
        ACE_Reactor_Mask mask
        );
    virtual int remove_handler_i (
        ACE_HANDLE handle,
        ACE_Reactor_Mask mask
        );
    virtual int remove_handler_i (
        const ACE_Handle_Set &handles,
        ACE_Reactor_Mask
        );
    virtual void remove_XtInput (ACE_HANDLE handle);
    virtual int wait_for_multiple_events (
        ACE_Select_Reactor_Handle_Set &,
        ACE_Time_Value *
        );
    virtual int XtWaitForMultipleEvents (
        int,
        ACE_Select_Reactor_Handle_Set &,
        ACE_Time_Value *
        );
    XtAppContext context_;
    ACE_XtReactorID *ids_;
    XtIntervalId timeout_;
  private:
    void reset_timeout (void);
    static void TimerCallbackProc (
        XtPointer closure,
        XtIntervalId *id
        );
    static void InputCallbackProc (
        XtPointer closure,
        int* source,
        XtInputId *id
        );
    ACE_XtReactor (const ACE_XtReactor &);
    ACE_XtReactor &operator = (const ACE_XtReactor &);
};
```

## Initialization and termination methods.

```
ACE_XtReactor (
    XtAppContext context = 0,
    size_t size = DEFAULT_SIZE,
    int restart = 0,
    ACE_Sig_Handler * = 0
    );
```

```
virtual ~ACE_XtReactor (void);
```

```
XtAppContext context (void) const;
```

```
void context (XtAppContext);
```

## Timer operations.

```
virtual long schedule_timer (
    ACE_Event_Handler *handler,
    const void *arg,
    const ACE_Time_Value &delta_time,
    const ACE_Time_Value &interval
    );
```

```
virtual int reset_timer_interval (
    long timer_id,
    const ACE_Time_Value &interval
    );
```

```
virtual int cancel_timer (
    ACE_Event_Handler *handler,
    int dont_call_handle_close = 1
    );
```

```
virtual int cancel_timer (
    long timer_id,
    const void **arg = 0,
    int dont_call_handle_close = 1
    );
```

## Register timers/handles with Xt.

```
virtual int register_handler_i (
    ACE_HANDLE handle,
    ACE_Event_Handler *handler,
    ACE_Reactor_Mask mask
    );
```

Register a single handler.

```
virtual int register_handler_i (
    const ACE_Handle_Set &handles,
    ACE_Event_Handler *handler,
    ACE_Reactor_Mask mask
    );
```

Register a set of handlers.

```
virtual int remove_handler_i (
    ACE_HANDLE handle,
    ACE_Reactor_Mask mask
    );
```

Remove the handler associated with this handle.

```
virtual int remove_handler_i (
    const ACE_Handle_Set &handles,
    ACE_Reactor_Mask
    );
```

Remove a set of handles.

```
virtual void remove_XtInput (ACE_HANDLE handle);
```

Removes an Xt handle.

```
virtual int wait_for_multiple_events (
    ACE_Select_Reactor_Handle_Set &,
    ACE_Time_Value *
    );
```

Wait for events to occur.

```
virtual int XtWaitForMultipleEvents (
    int,
    ACE_Select_Reactor_Handle_Set &,
    ACE_Time_Value *
    );
```

Wait for Xt events to occur.

```
XtAppContext context_;
```

```
ACE_XtReactorID *ids_;
```

```
XtIntervalId timeout_;
```

## Integrate with the X callback function mechanism.

```
static void TimerCallbackProc (XtPointer closure, XtIntervalId *id);
```

```
static void InputCallbackProc (
    XtPointer closure,
    int* source,
    XtInputId *id
    );
```

```
ACE_XtReactor (const ACE_XtReactor &);
```

```
ACE_XtReactor &operator = (const ACE_XtReactor &);
```

Deny access since member-wise won't work...

## AUTHOR

Eric C. Newton's ecn@clark.net, Kirill Rybaltchenko Kirill.Rybaltchenko@cern.ch, and Douglas C. Schmidt schmidt@cs.wustl.edu

## LIBRARY

ace
