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

# openvrml::node_impl_util::abstract_node< Derived > Class Template Reference

Abstract base class for node implementations. More...

`#include <openvrml/node_impl_util.h>`

Inheritance diagram for openvrml::node_impl_util::abstract_node< Derived >:
[legend]

List of all members.

## Classes

class | event_emitter
| Concrete event emitter class template. More...
class | exposedfield
| exposedField implementation. More...

## Public Member Functions

virtual | ~abstract_node ()=0 throw ()
| Destroy.

## Protected Types

typedef Derived | self_t
| The derived type.
typedef node_field_value_listener < sfbool > | sfbool_listener
| `openvrml::sfbool` listener. Provided for convenience.
typedef node_field_value_listener < sfcolor > | sfcolor_listener
| `openvrml::sfcolor` listener. Provided for convenience.
typedef node_field_value_listener < sffloat > | sffloat_listener
| `openvrml::sffloat` listener. Provided for convenience.
typedef node_field_value_listener < sfdouble > | sfdouble_listener
| `openvrml::sfdouble` listener. Provided for convenience.
typedef node_field_value_listener < sfimage > | sfimage_listener
| `openvrml::sfimage` listener. Provided for convenience.
typedef node_field_value_listener < sfint32 > | sfint32_listener
| `openvrml::sfint32` listener. Provided for convenience.
typedef node_field_value_listener < sfnode > | sfnode_listener
| `openvrml::sfnode` listener. Provided for convenience.
typedef node_field_value_listener < sfrotation > | sfrotation_listener
| `openvrml::sfrotation` listener. Provided for convenience.
typedef node_field_value_listener < sfstring > | sfstring_listener
| `openvrml::sfstring` listener. Provided for convenience.
typedef node_field_value_listener < sftime > | sftime_listener
| `openvrml::sftime` listener. Provided for convenience.
typedef node_field_value_listener < sfvec2f > | sfvec2f_listener
| `openvrml::sfvec2f` listener. Provided for convenience.
typedef node_field_value_listener < sfvec2d > | sfvec2d_listener
| `openvrml::sfvec2d` listener. Provided for convenience.
typedef node_field_value_listener < sfvec3f > | sfvec3f_listener
| `openvrml::sfvec3f` listener. Provided for convenience.
typedef node_field_value_listener < sfvec3d > | sfvec3d_listener
| `openvrml::sfvec3d` listener. Provided for convenience.
typedef node_field_value_listener < mfbool > | mfbool_listener
| `openvrml::mfbool` listener. Provided for convenience.
typedef node_field_value_listener < mfcolor > | mfcolor_listener
| `openvrml::mfcolor` listener. Provided for convenience.
typedef node_field_value_listener < mffloat > | mffloat_listener
| `openvrml::mffloat` listener. Provided for convenience.
typedef node_field_value_listener < mfdouble > | mfdouble_listener
| `openvrml::mfdouble` listener. Provided for convenience.
typedef node_field_value_listener < mfint32 > | mfint32_listener
| `openvrml::mfint32` listener. Provided for convenience.
typedef node_field_value_listener < mfnode > | mfnode_listener
| `openvrml::mfnode` listener. Provided for convenience.
typedef node_field_value_listener < mfrotation > | mfrotation_listener
| `openvrml::mfrotation` listener. Provided for convenience.
typedef node_field_value_listener < mfstring > | mfstring_listener
| `openvrml::mfstring` listener. Provided for convenience.
typedef node_field_value_listener < mftime > | mftime_listener
| `openvrml::mftime` listener. Provided for convenience.
typedef node_field_value_listener < mfvec2f > | mfvec2f_listener
| `openvrml::mfvec2f` listener. Provided for convenience.
typedef node_field_value_listener < mfvec2d > | mfvec2d_listener
| `openvrml::mfvec2d` listener. Provided for convenience.
typedef node_field_value_listener < mfvec3f > | mfvec3f_listener
| `openvrml::mfvec3f` listener. Provided for convenience.
typedef node_field_value_listener < mfvec3d > | mfvec3d_listener
| `openvrml::mfvec3d` listener. Provided for convenience.
typedef event_emitter< sfbool > | sfbool_emitter
| `openvrml::sfbool` event emitter.
typedef event_emitter< sfcolor > | sfcolor_emitter
| `openvrml::sfcolor` event emitter.
typedef event_emitter< sfdouble > | sfdouble_emitter
| `openvrml::sfdouble` event emitter.
typedef event_emitter< sffloat > | sffloat_emitter
| `openvrml::sffloat` event emitter.
typedef event_emitter< sfimage > | sfimage_emitter
| `openvrml::sfimage` event emitter.
typedef event_emitter< sfint32 > | sfint32_emitter
| `openvrml::sfint32` event emitter.
typedef event_emitter< sfnode > | sfnode_emitter
| `openvrml::sfnode` event emitter.
typedef event_emitter< sfrotation > | sfrotation_emitter
| `openvrml::sfrotation` event emitter.
typedef event_emitter< sfstring > | sfstring_emitter
| `openvrml::sfstring` event emitter.
typedef event_emitter< sftime > | sftime_emitter
| `openvrml::sftime` event emitter.
typedef event_emitter< sfvec2d > | sfvec2d_emitter
| `openvrml::sfvec2d` event emitter.
typedef event_emitter< sfvec2f > | sfvec2f_emitter
| `openvrml::sfvec2f` event emitter.
typedef event_emitter< sfvec3d > | sfvec3d_emitter
| `openvrml::sfvec3d` event emitter.
typedef event_emitter< sfvec3f > | sfvec3f_emitter
| `openvrml::sfvec3f` event emitter.
typedef event_emitter< mfcolor > | mfcolor_emitter
| `openvrml::mfcolor` event emitter.
typedef event_emitter< mfdouble > | mfdouble_emitter
| `openvrml::mfdouble` event emitter.
typedef event_emitter< mffloat > | mffloat_emitter
| `openvrml::mffloat` event emitter.
typedef event_emitter< mfnode > | mfnode_emitter
| `openvrml::mfnode` event emitter.
typedef event_emitter< mfrotation > | mfrotation_emitter
| `openvrml::mfrotation` event emitter.
typedef event_emitter< mfstring > | mfstring_emitter
| `openvrml::mfstring` event emitter.
typedef event_emitter< mftime > | mftime_emitter
| `openvrml::mftime` event emitter.
typedef event_emitter< mfvec2d > | mfvec2d_emitter
| `openvrml::mfvec2d` event emitter.
typedef event_emitter< mfvec2f > | mfvec2f_emitter
| `openvrml::mfvec2f` event emitter.
typedef event_emitter< mfvec3d > | mfvec3d_emitter
| `openvrml::mfvec3d` event emitter.
typedef event_emitter< mfvec3f > | mfvec3f_emitter
| `openvrml::mfvec3f` event emitter.

## Protected Member Functions

| abstract_node (const node_type &type, const boost::shared_ptr< openvrml::scope > &scope)
| Construct.

## Protected Attributes

exposedfield< sfnode > | metadata
| metadata exposedField.

## Private Member Functions

virtual const field_value & | do_field (const std::string &id) const throw ( unsupported_interface )
| Get a field value for a `node`.
virtual openvrml::event_listener & | do_event_listener (const std::string &id) throw ( unsupported_interface )
| Get an event listener.
virtual openvrml::event_emitter & | do_event_emitter (const std::string &id) throw ( unsupported_interface )
| Get an event emitter.

## Detailed Description

### template<typename Derived>
class openvrml::node_impl_util::abstract_node< Derived >

Abstract base class for node implementations.

`abstract_node` encapsulates the mechanisms for field access and mutation, event dispatch, and `eventOut` access.

Template Parameters:

  | Derived | the type that inherits this class template.

## Member Typedef Documentation

template<typename Derived >

Derived openvrml::node_impl_util::abstract_node< Derived >::self_t`[protected]`

The derived type.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::sfbool > openvrml::node_impl_util::abstract_node< Derived >::sfbool_listener`[protected]`

`openvrml::sfbool` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::sfcolor > openvrml::node_impl_util::abstract_node< Derived >::sfcolor_listener`[protected]`

`openvrml::sfcolor` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::sffloat > openvrml::node_impl_util::abstract_node< Derived >::sffloat_listener`[protected]`

`openvrml::sffloat` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::sfdouble > openvrml::node_impl_util::abstract_node< Derived >::sfdouble_listener`[protected]`

`openvrml::sfdouble` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::sfimage > openvrml::node_impl_util::abstract_node< Derived >::sfimage_listener`[protected]`

`openvrml::sfimage` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::sfint32 > openvrml::node_impl_util::abstract_node< Derived >::sfint32_listener`[protected]`

`openvrml::sfint32` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::sfnode > openvrml::node_impl_util::abstract_node< Derived >::sfnode_listener`[protected]`

`openvrml::sfnode` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::sfrotation > openvrml::node_impl_util::abstract_node< Derived >::sfrotation_listener`[protected]`

`openvrml::sfrotation` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::sfstring > openvrml::node_impl_util::abstract_node< Derived >::sfstring_listener`[protected]`

`openvrml::sfstring` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::sftime > openvrml::node_impl_util::abstract_node< Derived >::sftime_listener`[protected]`

`openvrml::sftime` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::sfvec2f > openvrml::node_impl_util::abstract_node< Derived >::sfvec2f_listener`[protected]`

`openvrml::sfvec2f` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::sfvec2d > openvrml::node_impl_util::abstract_node< Derived >::sfvec2d_listener`[protected]`

`openvrml::sfvec2d` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::sfvec3f > openvrml::node_impl_util::abstract_node< Derived >::sfvec3f_listener`[protected]`

`openvrml::sfvec3f` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::sfvec3d > openvrml::node_impl_util::abstract_node< Derived >::sfvec3d_listener`[protected]`

`openvrml::sfvec3d` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::mfbool > openvrml::node_impl_util::abstract_node< Derived >::mfbool_listener`[protected]`

`openvrml::mfbool` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::mfcolor > openvrml::node_impl_util::abstract_node< Derived >::mfcolor_listener`[protected]`

`openvrml::mfcolor` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::mffloat > openvrml::node_impl_util::abstract_node< Derived >::mffloat_listener`[protected]`

`openvrml::mffloat` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::mfdouble > openvrml::node_impl_util::abstract_node< Derived >::mfdouble_listener`[protected]`

`openvrml::mfdouble` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::mfint32 > openvrml::node_impl_util::abstract_node< Derived >::mfint32_listener`[protected]`

`openvrml::mfint32` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::mfnode > openvrml::node_impl_util::abstract_node< Derived >::mfnode_listener`[protected]`

`openvrml::mfnode` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::mfrotation > openvrml::node_impl_util::abstract_node< Derived >::mfrotation_listener`[protected]`

`openvrml::mfrotation` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::mfstring > openvrml::node_impl_util::abstract_node< Derived >::mfstring_listener`[protected]`

`openvrml::mfstring` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::mftime > openvrml::node_impl_util::abstract_node< Derived >::mftime_listener`[protected]`

`openvrml::mftime` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::mfvec2f > openvrml::node_impl_util::abstract_node< Derived >::mfvec2f_listener`[protected]`

`openvrml::mfvec2f` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::mfvec2d > openvrml::node_impl_util::abstract_node< Derived >::mfvec2d_listener`[protected]`

`openvrml::mfvec2d` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::mfvec3f > openvrml::node_impl_util::abstract_node< Derived >::mfvec3f_listener`[protected]`

`openvrml::mfvec3f` listener. Provided for convenience.

template<typename Derived >

openvrml::node_field_value_listener< openvrml::mfvec3d > openvrml::node_impl_util::abstract_node< Derived >::mfvec3d_listener`[protected]`

`openvrml::mfvec3d` listener. Provided for convenience.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::sfbool > openvrml::node_impl_util::abstract_node< Derived >::sfbool_emitter`[protected]`

`openvrml::sfbool` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::sfcolor > openvrml::node_impl_util::abstract_node< Derived >::sfcolor_emitter`[protected]`

`openvrml::sfcolor` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::sfdouble > openvrml::node_impl_util::abstract_node< Derived >::sfdouble_emitter`[protected]`

`openvrml::sfdouble` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::sffloat > openvrml::node_impl_util::abstract_node< Derived >::sffloat_emitter`[protected]`

`openvrml::sffloat` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::sfimage > openvrml::node_impl_util::abstract_node< Derived >::sfimage_emitter`[protected]`

`openvrml::sfimage` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::sfint32 > openvrml::node_impl_util::abstract_node< Derived >::sfint32_emitter`[protected]`

`openvrml::sfint32` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::sfnode > openvrml::node_impl_util::abstract_node< Derived >::sfnode_emitter`[protected]`

`openvrml::sfnode` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::sfrotation > openvrml::node_impl_util::abstract_node< Derived >::sfrotation_emitter`[protected]`

`openvrml::sfrotation` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::sfstring > openvrml::node_impl_util::abstract_node< Derived >::sfstring_emitter`[protected]`

`openvrml::sfstring` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::sftime > openvrml::node_impl_util::abstract_node< Derived >::sftime_emitter`[protected]`

`openvrml::sftime` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::sfvec2d > openvrml::node_impl_util::abstract_node< Derived >::sfvec2d_emitter`[protected]`

`openvrml::sfvec2d` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::sfvec2f > openvrml::node_impl_util::abstract_node< Derived >::sfvec2f_emitter`[protected]`

`openvrml::sfvec2f` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::sfvec3d > openvrml::node_impl_util::abstract_node< Derived >::sfvec3d_emitter`[protected]`

`openvrml::sfvec3d` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::sfvec3f > openvrml::node_impl_util::abstract_node< Derived >::sfvec3f_emitter`[protected]`

`openvrml::sfvec3f` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::mfcolor > openvrml::node_impl_util::abstract_node< Derived >::mfcolor_emitter`[protected]`

`openvrml::mfcolor` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::mfdouble > openvrml::node_impl_util::abstract_node< Derived >::mfdouble_emitter`[protected]`

`openvrml::mfdouble` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::mffloat > openvrml::node_impl_util::abstract_node< Derived >::mffloat_emitter`[protected]`

`openvrml::mffloat` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::mfnode > openvrml::node_impl_util::abstract_node< Derived >::mfnode_emitter`[protected]`

`openvrml::mfnode` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::mfrotation > openvrml::node_impl_util::abstract_node< Derived >::mfrotation_emitter`[protected]`

`openvrml::mfrotation` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::mfstring > openvrml::node_impl_util::abstract_node< Derived >::mfstring_emitter`[protected]`

`openvrml::mfstring` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::mftime > openvrml::node_impl_util::abstract_node< Derived >::mftime_emitter`[protected]`

`openvrml::mftime` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::mfvec2d > openvrml::node_impl_util::abstract_node< Derived >::mfvec2d_emitter`[protected]`

`openvrml::mfvec2d` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::mfvec2f > openvrml::node_impl_util::abstract_node< Derived >::mfvec2f_emitter`[protected]`

`openvrml::mfvec2f` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::mfvec3d > openvrml::node_impl_util::abstract_node< Derived >::mfvec3d_emitter`[protected]`

`openvrml::mfvec3d` event emitter.

template<typename Derived >

openvrml::node_impl_util::abstract_node::event_emitter< openvrml::mfvec3f > openvrml::node_impl_util::abstract_node< Derived >::mfvec3f_emitter`[protected]`

`openvrml::mfvec3f` event emitter.

## Constructor & Destructor Documentation

template<typename Derived >

openvrml::node_impl_util::abstract_node< Derived >::~abstract_node | ( |  | ) | throw ()`[inline, pure virtual]`

Destroy.

template<typename Derived >

openvrml::node_impl_util::abstract_node< Derived >::abstract_node | ( | const node_type & | type,
|  | const boost::shared_ptr< openvrml::scope > & | scope |
| ) |  |  | `[inline, protected]`

Construct.

Parameters:

  `[in]` | type | the `node_type` associated with this node.
  `[in]` | scope | the `scope` to which the `node` belongs.

## Member Function Documentation

template<typename Derived >

const field_value & openvrml::node_impl_util::abstract_node< Derived >::do_field | ( | const std::string & | id | ) | const throw ( unsupported_interface )`[inline, private, virtual]`

Get a field value for a `node`.

Parameters:

  `[in]` | id | a field name.

Exceptions:

  | unsupported_interface | if the `node` has no `field` `id`.

Implements openvrml::node.

template<typename Derived >

event_listener & openvrml::node_impl_util::abstract_node< Derived >::do_event_listener | ( | const std::string & | id | ) | throw ( unsupported_interface )`[inline, private, virtual]`

Get an event listener.

This method is called by `node::event_listener`.

Parameters:

  `[in]` | id | `eventIn` identifier.

Returns:
  the event listener.

Exceptions:

  | unsupported_interface | if the `node` has no `eventIn` `id`.

Implements openvrml::node.

template<typename Derived >

event_emitter & openvrml::node_impl_util::abstract_node< Derived >::do_event_emitter | ( | const std::string & | id | ) | throw ( unsupported_interface )`[inline, private, virtual]`

Get an event emitter.

This method is called by `node::event_emitter`.

Parameters:

  `[in]` | id | `eventOut` identifier.

Returns:
  the event emitter.

Exceptions:

  | unsupported_interface | if the `node` has no `eventOut` `id`.

Implements openvrml::node.

## Member Data Documentation

template<typename Derived >

openvrml::node_impl_util::abstract_node< Derived >::metadata`[protected]`

metadata exposedField.