openvrml::field_value_emitter< FieldValue > Class Template Referenceabstract

Concrete event emitter template. More...

#include <openvrml/event.h>

Inheritance diagram for openvrml::field_value_emitter< FieldValue >:

Public Member Functions

 field_value_emitter (const FieldValue &value) throw ()
 Construct. More...
 
virtual ~field_value_emitter ()=0 throw ()
 Destroy. More...
 
bool add (field_value_listener< FieldValue > &listener) throw ( std::bad_alloc )
 Add an event listener. More...
 
bool remove (field_value_listener< FieldValue > &listener) throw ()
 Remove an event listener. More...
 
const std::set< field_value_listener< FieldValue > * > listeners () const throw ( std::bad_alloc )
 The event listeners currently listening to the emitter. More...
 
- Public Member Functions inherited from openvrml::event_emitter
virtual ~event_emitter ()=0 throw ()
 Destroy. More...
 
const field_valuevalue () const throw ()
 A reference to the field_value for the event_emitter. More...
 
const std::string eventout_id () const throw ()
 The associated eventOut identifier. More...
 
double last_time () const throw ()
 The timestamp of the last event emitted. More...
 
template<typename FieldValue >
bool add (field_value_listener< FieldValue > &listener) throw ( std::bad_alloc )
 Add an event listener. More...
 
template<typename FieldValue >
bool remove (field_value_listener< FieldValue > &listener) throw ()
 Remove an event listener. More...
 

Private Member Functions

virtual void emit_event (double timestamp) throw ( std::bad_alloc )
 Emit an event. More...
 

Additional Inherited Members

- Public Types inherited from openvrml::event_emitter
typedef std::set< event_listener * > listener_set
 Set of event_listeners. More...
 
- Protected Member Functions inherited from openvrml::event_emitter
 event_emitter (const field_value &value) throw ()
 Construct. More...
 
template<typename FieldValue >
const std::set< field_value_listener< FieldValue > * > listeners () const throw ( std::bad_alloc )
 The event listeners currently listening to the emitter. More...
 
template<typename FieldValue >
void emit_event (double timestamp) throw ( std::bad_alloc )
 Emit an event. More...
 

Detailed Description

template<typename FieldValue>
class openvrml::field_value_emitter< FieldValue >

Concrete event emitter template.

Template Parameters
FieldValuea Field Value.

Constructor & Destructor Documentation

template<typename FieldValue >
openvrml::field_value_emitter< FieldValue >::field_value_emitter ( const FieldValue &  value)
throw (
)
inlineexplicit

Construct.

Template Parameters
FieldValuea Field Value.
Parameters
[in]valuefield_value associated with this emitter.
template<typename FieldValue >
openvrml::field_value_emitter< FieldValue >::~field_value_emitter ( )
throw (
)
inlinepure virtual

Destroy.

Template Parameters
FieldValuea Field Value.

Member Function Documentation

template<typename FieldValue >
bool openvrml::field_value_emitter< FieldValue >::add ( field_value_listener< FieldValue > &  listener)
throw (std::bad_alloc
)
inline

Add an event listener.

Template Parameters
FieldValuea Field Value.
Parameters
[in]listenerthe listener to add.
Returns
true if listener was added; false if listener was not added (if it was already registered for the emitter).
Exceptions
std::bad_allocif memory allocation fails.
template<typename FieldValue >
bool openvrml::field_value_emitter< FieldValue >::remove ( field_value_listener< FieldValue > &  listener)
throw (
)
inline

Remove an event listener.

Template Parameters
FieldValuea Field Value.
Parameters
[in]listenerthe listener to remove.
Returns
true if listener was removed; false if listener was not removed (if it was not registered for the emitter).
template<typename FieldValue >
const std::set< field_value_listener< FieldValue > * > openvrml::field_value_emitter< FieldValue >::listeners ( ) const
throw (std::bad_alloc
)

The event listeners currently listening to the emitter.

Template Parameters
FieldValuea Field Value.
Returns
the event listeners currently listening to the emitter.
template<typename FieldValue >
void openvrml::field_value_emitter< FieldValue >::emit_event ( double  timestamp)
throw (std::bad_alloc
)
inlineprivatevirtual

Emit an event.

Template Parameters
FieldValuea Field Value.
Parameters
[in]timestampthe current time.
Exceptions
std::bad_allocif memory allocation fails.

Implements openvrml::event_emitter.