openvrml::script_node::script_node::script_node_type Class Reference

Type objects for script_nodes. More...

#include <openvrml/script.h>

Inheritance diagram for openvrml::script_node::script_node::script_node_type:

List of all members.


Public Member Functions

 script_node_type (script_node_metatype &class_)
 Construct.
virtual ~script_node_type () throw ()
 Destroy.
void add_interface (const node_interface &interface_) throw ( std::bad_alloc , std::invalid_argument )
 Add an interface.

Private Member Functions

virtual const node_interface_setdo_interfaces () const throw ()
 Get the interfaces for the node.
virtual const
boost::intrusive_ptr< node
do_create_node (const boost::shared_ptr< openvrml::scope > &scope, const initial_value_map &initial_values) const throw ( unsupported_interface , std::bad_cast , std::bad_alloc )
 Clone the Script node that has this node_type.

Private Attributes

node_interface_set interfaces_
 Node interfaces.

Detailed Description

Type objects for script_nodes.

For internal use only.

See also:
script_node::type_


Constructor & Destructor Documentation

openvrml::script_node::script_node::script_node_type::script_node_type ( script_node_metatype class_  )  [explicit]

Construct.

Parameters:
[in] class_ the node_metatype for script_nodes.

openvrml::script_node::script_node::script_node_type::~script_node_type (  )  throw () [virtual]

Destroy.


Member Function Documentation

void openvrml::script_node::script_node::script_node_type::add_interface ( const node_interface interface_  )  throw ( std::bad_alloc , std::invalid_argument )

Add an interface.

Parameters:
[in] interface 
Exceptions:
std::bad_alloc if memory allocation fails.
std::invalid_argument if the script_node_type already has an interface that conflicts with interface.

const openvrml::node_interface_set & openvrml::script_node::script_node::script_node_type::do_interfaces (  )  const throw () [private, virtual]

Get the interfaces for the node.

Returns:
the interfaces for the node.

Implements openvrml::node_type.

const boost::intrusive_ptr< openvrml::node > openvrml::script_node::script_node::script_node_type::do_create_node ( const boost::shared_ptr< openvrml::scope > &  scope,
const initial_value_map initial_values 
) const throw ( unsupported_interface , std::bad_cast , std::bad_alloc ) [private, virtual]

Clone the Script node that has this node_type.

Since the node_type for a script_node is only available once a script_node is instantiated, you have to have a script_node instance in order to be able to use this method. The “primordial” script_node instance must be created with a call to the script_node constructor.

Parameters:
[in] scope the scope to which the node should belong.
[in] initial_values a map of initial values for the node's fields and exposedFields.
Exceptions:
unsupported_interface if initial_values specifies a field name that is not supported by the node type.
std::bad_cast if a value in initial_values is the wrong type.
std::bad_alloc if memory allocation fails.


Member Data Documentation

openvrml::node_interface_set openvrml::script_node::script_node::script_node_type::interfaces_ [private]

Node interfaces.