Home | Download | Screen shots | Discussion | Documentation |
---|
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 . |
Set of event_listeners.
openvrml::event_emitter::~event_emitter | ( | ) | throw () [pure virtual] |
Destroy.
openvrml::event_emitter::event_emitter | ( | const field_value & | value | ) | throw () [explicit, protected] |
std::auto_ptr< event_emitter > openvrml::event_emitter::create | ( | const field_value & | value | ) | throw (std::bad_alloc) [static] |
Create an event_emitter.
value | value to emit. |
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
.
field_value
for the event_emitter
. const event_emitter::listener_set & openvrml::event_emitter::listeners | ( | ) | const throw () |
Registered listeners.
double openvrml::event_emitter::last_time | ( | ) | const throw () |
The timestamp of the last event emitted.
event_emitter::listener_set & openvrml::event_emitter::listeners | ( | ) | throw () [protected] |
Registered listeners.
void openvrml::event_emitter::last_time | ( | double | t | ) | throw () [protected] |
Set the timestamp of the last event emitted.
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.
timestamp | the current time. |
std::bad_alloc | if memory allocation fails. |
Implemented in openvrml::field_value_emitter< FieldValue >, openvrml::field_value_emitter< openvrml::sfrotation >, openvrml::field_value_emitter< openvrml::sffloat >, openvrml::field_value_emitter< openvrml::sfvec2f >, openvrml::field_value_emitter< openvrml::mfcolor >, openvrml::field_value_emitter< openvrml::sfvec3f >, openvrml::field_value_emitter< openvrml::sftime >, openvrml::field_value_emitter< openvrml::mfstring >, openvrml::field_value_emitter< openvrml::sfimage >, openvrml::field_value_emitter< openvrml::mffloat >, openvrml::field_value_emitter< openvrml::sfcolor >, openvrml::field_value_emitter< openvrml::mfnode >, openvrml::field_value_emitter< openvrml::mfrotation >, openvrml::field_value_emitter< openvrml::mfvec2f >, openvrml::field_value_emitter< openvrml::sfint32 >, openvrml::field_value_emitter< openvrml::mfvec3f >, openvrml::field_value_emitter< openvrml::sfbool >, openvrml::field_value_emitter< openvrml::sfstring >, and openvrml::field_value_emitter< openvrml::sfnode >.
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.
const field_value & openvrml::event_emitter::value_ [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.