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:

Inheritance graph
[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_valuevalue () const throw ()
 A reference to the field_value for the event_emitter.
const listener_setlisteners () 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_emittercreate (const field_value &value) throw (std::bad_alloc)
 Create an event_emitter.

Protected Member Functions

listener_setlisteners () 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_valuevalue_
 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< sfstring >, openvrml::field_value_emitter< sftime >, 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 nodes. 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.