Home | Download | Screen shots | Discussion | Documentation
--- | --- | --- | --- | ---

- Main Page
- Namespaces
- Classes
- Files
- Examples

- Class List
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Protected Member Functions | Private Member Functions
openvrml::event_emitter Class Reference

Abstract base class of event emitters. More...

`#include <openvrml/event.h>`

Inheritance diagram for openvrml::event_emitter:
[legend]

List of all members.

## Public Types

typedef std::set < event_listener * > | listener_set
| Set of `event_listeners`.

## Public Member Functions

virtual | ~event_emitter ()=0 throw ()
| Destroy.
const field_value & | value () const throw ()
| A reference to the `field_value` for the `event_emitter`.
const std::string | eventout_id () const throw ()
| The associated `eventOut` identifier.
double | last_time () const throw ()
| The timestamp of the last event emitted.
template<typename FieldValue >
bool | add (field_value_listener< FieldValue > &listener) throw ( std::bad_alloc )
| Add an event listener.
template<typename FieldValue >
bool | remove (field_value_listener< FieldValue > &listener) throw ()
| Remove an event listener.

## Protected Member Functions

| event_emitter (const field_value &value) throw ()
| Construct.
template<typename FieldValue >
void | emit_event (double timestamp) throw ( std::bad_alloc )
| Emit an event.

## Private Member Functions

virtual const std::string | do_eventout_id () const =0 throw ()
| The associated `eventOut` identifier.

## Detailed Description

Abstract base class of event emitters.

## Member Typedef Documentation

openvrml::event_emitter::listener_set

Set of `event_listeners`.

## Constructor & Destructor Documentation

openvrml::event_emitter::~event_emitter | ( |  | ) | throw ()`[pure virtual]`

Destroy.

Implemented in openvrml::node_impl_util::abstract_node< Derived >::event_emitter< FieldValue >.

openvrml::event_emitter::event_emitter | ( | const field_value & | value | ) | throw ()`[explicit, protected]`

Construct.

Parameters:

  [in] | value | `field_value` associated with this emitter.

## Member Function Documentation

const openvrml::field_value & openvrml::event_emitter::value | ( |  | ) | const throw ()

A reference to the `field_value` for the `event_emitter`.

Returns:
  a reference to the `field_value` for the `event_emitter`.

const std::string openvrml::event_emitter::eventout_id | ( |  | ) | const throw ()

The associated `eventOut` identifier.

This function delegates to `event_emitter::do_eventout_id`.

Returns:
  the associated `eventOut` identifier.

double openvrml::event_emitter::last_time | ( |  | ) | const throw ()

The timestamp of the last event emitted.

Returns:
  the timestamp of the last event emitted.

template<typename FieldValue >

bool openvrml::event_emitter::add | ( | field_value_listener< FieldValue > & | listener | ) | throw ( std::bad_alloc )

Add an event listener.

Template Parameters:

  FieldValue | a Field Value.

Parameters:

  [in] | listener | an event listener.

Exceptions:

  std::bad_alloc | if memory allocation fails.

Reimplemented in openvrml::field_value_emitter< FieldValue >.

template<typename FieldValue >

bool openvrml::event_emitter::remove | ( | field_value_listener< FieldValue > & | listener | ) | throw ()

Remove an event listener.

Template Parameters:

  FieldValue | a Field Value.

Parameters:

  [in] | listener | an event listener.

Reimplemented in openvrml::field_value_emitter< FieldValue >.

template<typename FieldValue >

void openvrml::event_emitter::emit_event | ( | double | timestamp | ) | throw ( std::bad_alloc )`[protected]`

Emit an event.

Template Parameters:

  FieldValue | a Field Value.

Parameters:

  [in] | timestamp | the current time.

Exceptions:

  std::bad_alloc | if memory allocation fails.

Parameters:

  [in] | timestamp | the current time.

Exceptions:

  std::bad_alloc | if memory allocation fails.

This function is called by `node::emit_event`.

Reimplemented in openvrml::field_value_emitter< FieldValue >, and openvrml::field_value_emitter< sfnode >.

const std::string openvrml::event_emitter::do_eventout_id | ( |  | ) | const throw ()`[private, pure virtual]`

The associated `eventOut` identifier.

Concrete subclasses must implement this function.

Returns:
  the associated eventOut identifier.

Implemented in openvrml::node_impl_util::event_emitter_base< Node >, and openvrml::node_impl_util::event_emitter_base< Derived >.