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

Main Page | Modules | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members | Related Pages

# openvrml::event_emitter Class Reference

Inheritance diagram for openvrml::event_emitter:

[legend]
List of all members.

## Detailed Description

Abstract base class of event emitters.

## 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 listener_set & | listeners () const throw ()
| Registered listeners.
double | last_time () const throw ()
| The timestamp of the last event emitted.

## Static Public Member Functions

static std::auto_ptr< event_emitter > | create (const field_value &value) throw (std::bad_alloc)
| Create an event_emitter.

## Protected Member Functions

listener_set & | listeners () throw ()
| Registered listeners.
void | last_time (double t) throw ()
| Set the timestamp of the last event emitted.
| event_emitter (const field_value &value) throw ()
| Construct.

## Private Member Functions

virtual void | emit_event (double timestamp)=0 throw (std::bad_alloc)
| Emit an event.

## Private Attributes

const field_value & | value_
| A reference to the field_value for the event_emitter.
std::set< event_listener * > | listeners_
| The listeners registered for this emitter.
double | last_time_
| The timestamp of the last event emitted.

## Friends

class | node
| The implementation of `node` calls `event_emitter::emit_event`.

## Member Typedef Documentation

openvrml::event_emitter::listener_set

| Set of event_listeners.

## Constructor & Destructor Documentation

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

| Destroy.

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

Construct.

Parameters:

  | value | field_value associated with this emitter.

## Member Function Documentation

std::auto_ptr< event_emitter > openvrml::event_emitter::create | ( | const field_value & | value | ) | throw (std::bad_alloc)`[static]`

Create an event_emitter.

Parameters:

  | value | value to emit.

Returns:
  an event_emitter.

Exceptions:

  | std::bad_alloc | if memory allocation fails.

const 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 event_emitter::listener_set & openvrml::event_emitter::listeners | ( |  | ) | const throw ()

Registered listeners.

Returns:
  the set of registered event_listeners.

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

The timestamp of the last event emitted.

Returns:
  the timestamp of the last event emitted.

event_emitter::listener_set & openvrml::event_emitter::listeners | ( |  | ) | throw ()`[protected]`

Registered listeners.

Returns:
  the set of registered event_listeners.

void openvrml::event_emitter::last_time | ( | double | t | ) | throw ()`[protected]`

Set the timestamp of the last event emitted.

Parameters:

  | t | the timestamp of the last event emitted.

void openvrml::event_emitter::emit_event | ( | double | timestamp | ) | throw (std::bad_alloc)`[private, pure virtual]`

Emit an event.

Parameters:

  | timestamp | the current time.

Exceptions:

  | std::bad_alloc | if memory allocation fails.

This function is called by node::emit_event.

Implemented in openvrml::field_value_emitter< FieldValue >, openvrml::field_value_emitter< mfcolor >, openvrml::field_value_emitter< sffloat >, openvrml::field_value_emitter< sftime >, openvrml::field_value_emitter< sfstring >, openvrml::field_value_emitter< mfnode >, openvrml::field_value_emitter< mfrotation >, openvrml::field_value_emitter< mfvec2f >, openvrml::field_value_emitter< mfvec3f >, openvrml::field_value_emitter< sfcolor >, openvrml::field_value_emitter< mffloat >, openvrml::field_value_emitter< sfbool >, openvrml::field_value_emitter< sfimage >, openvrml::field_value_emitter< mfstring >, openvrml::field_value_emitter< sfnode >, openvrml::field_value_emitter< sfrotation >, openvrml::field_value_emitter< sfvec2f >, openvrml::field_value_emitter< sfint32 >, and openvrml::field_value_emitter< sfvec3f >.

## Friends And Related Function Documentation

class openvrml::event_emitter::node`[friend]`

| The implementation of `node` calls `event_emitter::emit_event`. The only things that should be emitting events are `node`s. Subclasses of `node` should call `node::emit_event` to emit an event.

## Member Data Documentation

const field_value & openvrml::event_emitter::value_`[private]`

| A reference to the field_value for the event_emitter. For internal use only.

event_emitter::listener_set openvrml::event_emitter::listeners_`[private]`

| The listeners registered for this emitter. When emit_event is called, each of the registered listeners will be sent an event.

double openvrml::event_emitter::last_time_`[private]`

| The timestamp of the last event emitted.