You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(128) |
Dec
(65) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(48) |
Feb
(132) |
Mar
(95) |
Apr
(47) |
May
(54) |
Jun
(2) |
Jul
(57) |
Aug
(109) |
Sep
(131) |
Oct
(186) |
Nov
(105) |
Dec
(78) |
2007 |
Jan
(125) |
Feb
(105) |
Mar
(52) |
Apr
(104) |
May
(63) |
Jun
(116) |
Jul
(76) |
Aug
|
Sep
(18) |
Oct
(93) |
Nov
(110) |
Dec
(169) |
2008 |
Jan
(90) |
Feb
(64) |
Mar
(41) |
Apr
(23) |
May
(6) |
Jun
(18) |
Jul
(10) |
Aug
(61) |
Sep
(139) |
Oct
(50) |
Nov
(55) |
Dec
(2) |
2009 |
Jan
|
Feb
(1) |
Mar
(62) |
Apr
(22) |
May
(17) |
Jun
(19) |
Jul
(40) |
Aug
(21) |
Sep
|
Oct
(40) |
Nov
(23) |
Dec
|
2010 |
Jan
(14) |
Feb
(40) |
Mar
(9) |
Apr
(11) |
May
(19) |
Jun
(4) |
Jul
(10) |
Aug
(22) |
Sep
(15) |
Oct
|
Nov
(2) |
Dec
|
2011 |
Jan
(13) |
Feb
(10) |
Mar
|
Apr
(13) |
May
|
Jun
|
Jul
(2) |
Aug
(4) |
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
(33) |
May
(20) |
Jun
|
Jul
(8) |
Aug
(7) |
Sep
(2) |
Oct
|
Nov
|
Dec
|
From: Braden M. <br...@us...> - 2005-11-02 15:41:16
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30333 Modified Files: ChangeLog Log Message: field_value's reference-counted value object needs to be protected by a mutex. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1018 retrieving revision 1.1019 diff -C2 -d -r1.1018 -r1.1019 *** ChangeLog 2 Nov 2005 08:50:24 -0000 1.1018 --- ChangeLog 2 Nov 2005 15:41:04 -0000 1.1019 *************** *** 1,4 **** --- 1,12 ---- 2005-11-02 Braden McDaniel <br...@en...> + field_value's reference-counted value object needs to be + protected by a mutex. + + * src/libopenvrml/openvrml/field_value.cpp + * src/libopenvrml/openvrml/field_value.h + + 2005-11-02 Braden McDaniel <br...@en...> + Factored node-specific parts of event_listener into their own class. This should accommodate things other than nodes being |
From: Braden M. <br...@us...> - 2005-11-02 08:50:32
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2284/src/libopenvrml/openvrml Modified Files: browser.cpp event.cpp event.h exposedfield.h node.cpp node_impl_util.cpp node_impl_util.h script.cpp script.h vrml97node.cpp Log Message: Factored node-specific parts of event_listener into their own class. This should accommodate things other than nodes being event listeners. Index: event.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/event.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** event.cpp 13 Jul 2005 05:38:50 -0000 1.7 --- event.cpp 2 Nov 2005 08:50:24 -0000 1.8 *************** *** 33,41 **** /** * @internal * ! * @var openvrml::node * openvrml::event_listener::node_ * ! * @brief The <code>node</code> to which the <code>event_listener</code> * belongs. */ --- 33,70 ---- /** + * @brief Construct. + */ + openvrml::event_listener::event_listener() throw () + {} + + /** + * @brief Destroy. + */ + openvrml::event_listener::~event_listener() throw () + {} + + /** + * @fn openvrml::field_value::type_id openvrml::event_listener::type() const throw () + * + * @brief The <code>field_value::type_id</code> for the type accepted by the + * event listener. + * + * @return The <code>field_value::type_id</code> for the type accepted by the + * event listener. + */ + + + /** + * @class openvrml::node_event_listener + * + * @brief Base class for event listeners of nodes. + */ + + /** * @internal * ! * @var openvrml::node * openvrml::node_event_listener::node_ * ! * @brief The <code>node</code> to which the <code>node_event_listener</code> * belongs. */ *************** *** 44,52 **** * @brief Construct. * ! * @param node the <code>node</code> to which the <code>event_listener</code> ! * belongs. */ ! openvrml::event_listener::event_listener(openvrml::node & node) throw (): ! node_(&node) {} --- 73,82 ---- * @brief Construct. * ! * @param n the <code>node</code> to which the <code>node_event_listener</code> ! * belongs. */ ! openvrml::node_event_listener::node_event_listener(openvrml::node & n) ! throw (): ! node_(&n) {} *************** *** 54,68 **** * @brief Destroy. */ ! openvrml::event_listener::~event_listener() throw () {} /** ! * @brief The <code>node</code> to which the <code>event_listener</code> * belongs. * ! * @return the <code>node</code> to which the <code>event_listener</code> * belongs. */ ! openvrml::node & openvrml::event_listener::node() const throw () { return *this->node_; --- 84,98 ---- * @brief Destroy. */ ! openvrml::node_event_listener::~node_event_listener() throw () {} /** ! * @brief The <code>node</code> to which the <code>node_event_listener</code> * belongs. * ! * @return the <code>node</code> to which the <code>node_event_listener</code> * belongs. */ ! openvrml::node & openvrml::node_event_listener::node() const throw () { return *this->node_; *************** *** 72,80 **** * @brief The associated eventIn identifier. * ! * This function delegates to <code>event_listener::do_eventin_id</code>. * * @return the associated eventIn identifier. */ ! const std::string openvrml::event_listener::eventin_id() const throw () { return this->do_eventin_id(); --- 102,110 ---- * @brief The associated eventIn identifier. * ! * This function delegates to <code>node_event_listener::do_eventin_id</code>. * * @return the associated eventIn identifier. */ ! const std::string openvrml::node_event_listener::eventin_id() const throw () { return this->do_eventin_id(); *************** *** 82,86 **** /** ! * @fn const std::string openvrml::event_listener::do_eventin_id() const throw () * * @brief The associated eventIn identifier. --- 112,116 ---- /** ! * @fn const std::string openvrml::node_event_listener::do_eventin_id() const throw () * * @brief The associated eventIn identifier. *************** *** 91,103 **** */ - /** - * @fn openvrml::field_value::type_id openvrml::event_listener::type() const throw () - * - * @brief The <code>field_value::type_id</code> for the type accepted by the - * event listener. - * - * @return The <code>field_value::type_id</code> for the type accepted by the - * event listener. - */ /** --- 121,124 ---- *************** *** 108,112 **** /** ! * @fn openvrml::field_value_listener<FieldValue>::field_value_listener(openvrml::node & node) throw () * * @brief Construct. --- 129,133 ---- /** ! * @fn openvrml::field_value_listener::field_value_listener() throw () * * @brief Construct. *************** *** 116,120 **** /** ! * @fn openvrml::field_value_listener<FieldValue>::~field_value_listener() throw () * * @brief Destroy. --- 137,141 ---- /** ! * @fn openvrml::field_value_listener::~field_value_listener() throw () * * @brief Destroy. *************** *** 122,126 **** /** ! * @fn openvrml::field_value::type_id openvrml::field_value_listener<FieldValue>::type() const throw () * * @brief <code>FieldValue::field_value_type_id</code>. --- 143,147 ---- /** ! * @fn openvrml::field_value::type_id openvrml::field_value_listener::type() const throw () * * @brief <code>FieldValue::field_value_type_id</code>. *************** *** 130,134 **** /** ! * @fn void openvrml::field_value_listener<FieldValue>::process_event(const FieldValue & value, double timestamp) throw (std::bad_alloc) * * @brief Process an event. --- 151,155 ---- /** ! * @fn void openvrml::field_value_listener::process_event(const FieldValue & value, double timestamp) throw (std::bad_alloc) * * @brief Process an event. *************** *** 141,145 **** /** ! * @fn void openvrml::field_value_listener<FieldValue>::do_process_event(const FieldValue & value, double timestamp) throw (std::bad_alloc) * * @brief Called by --- 162,166 ---- /** ! * @fn void openvrml::field_value_listener::do_process_event(const FieldValue & value, double timestamp) throw (std::bad_alloc) * * @brief Called by *************** *** 154,157 **** --- 175,179 ---- */ + /** * @typedef openvrml::sfbool_listener *************** *** 276,279 **** --- 298,323 ---- /** + * @class openvrml::node_field_value_listener + * + * @brief Base class for <code>field_value_listener</code>s that are members + * of nodes. + */ + + /** + * @fn openvrml::node_field_value_listener::node_field_value_listener(openvrml::node & n) throw () + * + * @brief Construct. + * + * @param n the node that the listener is a member of. + */ + + /** + * @fn openvrml::node_field_value_listener::~node_field_value_listener() throw () + * + * @brief Destroy. + */ + + + /** * @class openvrml::event_emitter * Index: node_impl_util.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/node_impl_util.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** node_impl_util.cpp 1 Nov 2005 06:55:24 -0000 1.4 --- node_impl_util.cpp 2 Nov 2005 08:50:24 -0000 1.5 *************** *** 475,478 **** --- 475,634 ---- /** + * @typedef openvrml::node_field_value_listener<openvrml::sfbool> openvrml::node_impl_util::abstract_node::sfbool_listener + * + * @brief <code>openvrml::sfbool</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::sfcolor> openvrml::node_impl_util::abstract_node::sfcolor_listener + * + * @brief <code>openvrml::sfcolor</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::sffloat> openvrml::node_impl_util::abstract_node::sffloat_listener + * + * @brief <code>openvrml::sffloat</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::sfdouble> openvrml::node_impl_util::abstract_node::sfdouble_listener + * + * @brief <code>openvrml::sfdouble</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::sfimage> openvrml::node_impl_util::abstract_node::sfimage_listener + * + * @brief <code>openvrml::sfimage</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::sfint32> openvrml::node_impl_util::abstract_node::sfint32_listener + * + * @brief <code>openvrml::sfint32</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::sfnode> openvrml::node_impl_util::abstract_node::sfnode_listener + * + * @brief <code>openvrml::sfnode</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::sfrotation> openvrml::node_impl_util::abstract_node::sfrotation_listener + * + * @brief <code>openvrml::sfrotation</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::sfstring> openvrml::node_impl_util::abstract_node::sfstring_listener + * + * @brief <code>openvrml::sfstring</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::sftime> openvrml::node_impl_util::abstract_node::sftime_listener + * + * @brief <code>openvrml::sftime</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::sfvec2f> openvrml::node_impl_util::abstract_node::sfvec2f_listener + * + * @brief <code>openvrml::sfvec2f</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::sfvec2d> openvrml::node_impl_util::abstract_node::sfvec2d_listener + * + * @brief <code>openvrml::sfvec2d</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::sfvec3f> openvrml::node_impl_util::abstract_node::sfvec3f_listener + * + * @brief <code>openvrml::sfvec3f</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::sfvec3d> openvrml::node_impl_util::abstract_node::sfvec3d_listener + * + * @brief <code>openvrml::sfvec3d</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::mfcolor> openvrml::node_impl_util::abstract_node::mfcolor_listener + * + * @brief <code>openvrml::mfcolor</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::mffloat> openvrml::node_impl_util::abstract_node::mffloat_listener + * + * @brief <code>openvrml::mffloat</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::mfdouble> openvrml::node_impl_util::abstract_node::mfdouble_listener + * + * @brief <code>openvrml::mfdouble</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::mfint32> openvrml::node_impl_util::abstract_node::mfint32_listener + * + * @brief <code>openvrml::mfint32</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::mfnode> openvrml::node_impl_util::abstract_node::mfnode_listener + * + * @brief <code>openvrml::mfnode</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::mfrotation> openvrml::node_impl_util::abstract_node::mfrotation_listener + * + * @brief <code>openvrml::mfrotation</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::mfstring> openvrml::node_impl_util::abstract_node::mfstring_listener + * + * @brief <code>openvrml::mfstring</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::mftime> openvrml::node_impl_util::abstract_node::mftime_listener + * + * @brief <code>openvrml::mftime</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::mfvec2f> openvrml::node_impl_util::abstract_node::mfvec2f_listener + * + * @brief <code>openvrml::mfvec2f</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::mfvec2d> openvrml::node_impl_util::abstract_node::mfvec2d_listener + * + * @brief <code>openvrml::mfvec2d</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::mfvec3f> openvrml::node_impl_util::abstract_node::mfvec3f_listener + * + * @brief <code>openvrml::mfvec3f</code> listener. Provided for convenience. + */ + + /** + * @typedef openvrml::node_field_value_listener<openvrml::mfvec3d> openvrml::node_impl_util::abstract_node::mfvec3d_listener + * + * @brief <code>openvrml::mfvec3d</code> listener. Provided for convenience. + */ + + /** * @class openvrml::node_impl_util::abstract_node::event_emitter * Index: node.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/node.cpp,v retrieving revision 1.63 retrieving revision 1.64 diff -C2 -d -r1.63 -r1.64 *** node.cpp 30 Oct 2005 03:20:17 -0000 1.63 --- node.cpp 2 Nov 2005 08:50:24 -0000 1.64 *************** *** 1315,1332 **** class dummy_listener : public openvrml::sfbool_listener { public: - dummy_listener(self_ref_node & n): - openvrml::event_listener(n), - openvrml::sfbool_listener(n) - {} - virtual ~dummy_listener() throw () {} private: - virtual const std::string do_eventin_id() const throw () - { - return std::string(); - } - virtual void do_process_event(const openvrml::sfbool &, double) throw (std::bad_alloc) --- 1315,1322 ---- *************** *** 1334,1338 **** }; ! static dummy_listener listener(*this); return listener; } --- 1324,1328 ---- }; ! static dummy_listener listener; return listener; } Index: script.h =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/script.h,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** script.h 30 Oct 2005 03:20:17 -0000 1.22 --- script.h 2 Nov 2005 08:50:24 -0000 1.23 *************** *** 136,140 **** template <typename FieldValue> ! class script_event_listener : public field_value_listener<FieldValue> { const std::string id; --- 136,142 ---- template <typename FieldValue> ! class script_event_listener : ! public node_field_value_listener<FieldValue> { ! const std::string id; *************** *** 221,225 **** throw (std::bad_alloc); ! class set_url_listener_t : public openvrml::mfstring_listener { public: explicit set_url_listener_t(script_node & node); --- 223,227 ---- throw (std::bad_alloc); ! class set_url_listener_t : public node_field_value_listener<mfstring> { public: explicit set_url_listener_t(script_node & node); *************** *** 299,304 **** const std::string & id, script_node & node): ! openvrml::event_listener(node), ! field_value_listener<FieldValue>(node), id(id) {} --- 301,306 ---- const std::string & id, script_node & node): ! node_event_listener(node), ! node_field_value_listener<FieldValue>(node), id(id) {} Index: vrml97node.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/vrml97node.cpp,v retrieving revision 1.82 retrieving revision 1.83 diff -C2 -d -r1.82 -r1.83 *** vrml97node.cpp 30 Oct 2005 03:20:17 -0000 1.82 --- vrml97node.cpp 2 Nov 2005 08:50:24 -0000 1.83 *************** *** 1150,1154 **** class set_color_index_listener : public event_listener_base<self_t>, ! public mfint32_listener { public: explicit set_color_index_listener( --- 1150,1154 ---- class set_color_index_listener : public event_listener_base<self_t>, ! public abstract_node<Derived>::mfint32_listener { public: [...1397 lines suppressed...] ! openvrml::event_listener(), ! node_event_listener(obj.node_event_listener::node()), openvrml::event_emitter(static_cast<const field_value &>(*this)), + sfvec3f_listener(obj.node_event_listener::node()), exposedfield<openvrml::sfvec3f>(obj) {} *************** *** 24155,24159 **** try { viewpoint_node & node = ! dynamic_cast<viewpoint_node &>(this->event_listener::node()); node.final_transformation_dirty = true; } catch (std::bad_cast & ex) { --- 24225,24230 ---- try { viewpoint_node & node = ! dynamic_cast<viewpoint_node &>( ! this->node_event_listener::node()); node.final_transformation_dirty = true; } catch (std::bad_cast & ex) { Index: browser.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/browser.cpp,v retrieving revision 1.89 retrieving revision 1.90 diff -C2 -d -r1.89 -r1.90 *** browser.cpp 30 Oct 2005 03:20:17 -0000 1.89 --- browser.cpp 2 Nov 2005 08:50:24 -0000 1.90 *************** *** 199,203 **** class OPENVRML_LOCAL proto_node : public node { template <typename FieldValue> ! class proto_eventin : public field_value_listener<FieldValue> { typedef std::set<field_value_listener<FieldValue> *> listeners; listeners listeners_; --- 199,203 ---- class OPENVRML_LOCAL proto_node : public node { template <typename FieldValue> ! class proto_eventin : public node_field_value_listener<FieldValue> { typedef std::set<field_value_listener<FieldValue> *> listeners; listeners listeners_; *************** *** 234,238 **** class proto_eventout : public field_value_emitter<FieldValue> { protected: ! class listener_t : public field_value_listener<FieldValue> { proto_eventout & emitter; --- 234,238 ---- class proto_eventout : public field_value_emitter<FieldValue> { protected: ! class listener_t : public node_field_value_listener<FieldValue> { proto_eventout & emitter; *************** *** 1003,1008 **** template <typename FieldValue> proto_node::proto_eventin<FieldValue>::proto_eventin(proto_node & node): ! openvrml::event_listener(node), ! field_value_listener<FieldValue>(node) {} --- 1003,1008 ---- template <typename FieldValue> proto_node::proto_eventin<FieldValue>::proto_eventin(proto_node & node): ! node_event_listener(node), ! node_field_value_listener<FieldValue>(node) {} *************** *** 1380,1385 **** proto_node & node, const FieldValue & initial_value): ! openvrml::event_listener(node), ! field_value_listener<FieldValue>(node), emitter(emitter), node(node), --- 1380,1385 ---- proto_node & node, const FieldValue & initial_value): ! node_event_listener(node), ! node_field_value_listener<FieldValue>(node), emitter(emitter), node(node), *************** *** 1783,1787 **** proto_node::proto_exposedfield<FieldValue>:: proto_exposedfield(proto_node & node, const FieldValue & initial_value): ! openvrml::event_listener(node), openvrml::event_emitter(this->listener.value), proto_eventin<FieldValue>(node), --- 1783,1787 ---- proto_node::proto_exposedfield<FieldValue>:: proto_exposedfield(proto_node & node, const FieldValue & initial_value): ! node_event_listener(node), openvrml::event_emitter(this->listener.value), proto_eventin<FieldValue>(node), Index: script.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/script.cpp,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** script.cpp 30 Oct 2005 03:20:17 -0000 1.55 --- script.cpp 2 Nov 2005 08:50:24 -0000 1.56 *************** *** 1228,1233 **** openvrml::script_node::set_url_listener_t:: set_url_listener_t(script_node & node): ! event_listener(node), ! openvrml::mfstring_listener(node) {} --- 1228,1233 ---- openvrml::script_node::set_url_listener_t:: set_url_listener_t(script_node & node): ! node_event_listener(node), ! node_field_value_listener<mfstring>(node) {} *************** *** 1496,1499 **** --- 1496,1500 ---- openvrml_::scope_guard guard = openvrml_::make_obj_guard(*this, &script_node::remove_ref); + boost::ignore_unused_variable_warning(guard); for (node_interface_set::const_iterator interface = interfaces.begin(); Index: exposedfield.h =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/exposedfield.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** exposedfield.h 23 Oct 2005 06:14:06 -0000 1.6 --- exposedfield.h 2 Nov 2005 08:50:24 -0000 1.7 *************** *** 29,35 **** template <typename FieldValue> ! class OPENVRML_API exposedfield : public FieldValue, ! public field_value_listener<FieldValue>, ! public field_value_emitter<FieldValue> { public: virtual ~exposedfield() throw (); --- 29,36 ---- template <typename FieldValue> ! class OPENVRML_API exposedfield : ! public FieldValue, ! public virtual node_field_value_listener<FieldValue>, ! public field_value_emitter<FieldValue> { public: virtual ~exposedfield() throw (); *************** *** 54,61 **** openvrml::node & node, const typename FieldValue::value_type & value): ! event_listener(node), event_emitter(static_cast<const field_value &>(*this)), FieldValue(value), - field_value_listener<FieldValue>(node), field_value_emitter<FieldValue>(static_cast<FieldValue &>(*this)) {} --- 55,62 ---- openvrml::node & node, const typename FieldValue::value_type & value): ! node_event_listener(node), ! node_field_value_listener<FieldValue>(node), event_emitter(static_cast<const field_value &>(*this)), FieldValue(value), field_value_emitter<FieldValue>(static_cast<FieldValue &>(*this)) {} *************** *** 64,71 **** inline exposedfield<FieldValue>::exposedfield( const exposedfield<FieldValue> & obj): ! event_listener(obj.node()), event_emitter(static_cast<const field_value &>(*this)), FieldValue(obj), - field_value_listener<FieldValue>(obj.node()), field_value_emitter<FieldValue>(static_cast<FieldValue &>(*this)) {} --- 65,73 ---- inline exposedfield<FieldValue>::exposedfield( const exposedfield<FieldValue> & obj): ! event_listener(), ! node_event_listener(obj.node()), ! node_field_value_listener<FieldValue>(obj.node()), event_emitter(static_cast<const field_value &>(*this)), FieldValue(obj), field_value_emitter<FieldValue>(static_cast<FieldValue &>(*this)) {} Index: node_impl_util.h =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/node_impl_util.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** node_impl_util.h 30 Oct 2005 03:20:17 -0000 1.2 --- node_impl_util.h 2 Nov 2005 08:50:24 -0000 1.3 *************** *** 224,228 **** template <typename Node> ! class event_listener_base : public virtual event_listener { public: virtual ~event_listener_base() throw () = 0; --- 224,228 ---- template <typename Node> ! class event_listener_base : public virtual node_event_listener { public: virtual ~event_listener_base() throw () = 0; *************** *** 240,244 **** bool> { explicit event_listener_equal_to( ! const event_listener & listener): listener_(&listener) {} --- 240,244 ---- bool> { explicit event_listener_equal_to( ! const node_event_listener & listener): listener_(&listener) {} *************** *** 253,257 **** private: ! const event_listener * listener_; }; --- 253,257 ---- private: ! const node_event_listener * listener_; }; *************** *** 262,266 **** event_listener_base<Node>::event_listener_base(openvrml::node & n) throw (): ! event_listener(n) {} --- 262,266 ---- event_listener_base<Node>::event_listener_base(openvrml::node & n) throw (): ! node_event_listener(n) {} *************** *** 373,376 **** --- 373,403 ---- typedef Derived self_t; + typedef node_field_value_listener<sfbool> sfbool_listener; + typedef node_field_value_listener<sfcolor> sfcolor_listener; + typedef node_field_value_listener<sffloat> sffloat_listener; + typedef node_field_value_listener<sfdouble> sfdouble_listener; + typedef node_field_value_listener<sfimage> sfimage_listener; + typedef node_field_value_listener<sfint32> sfint32_listener; + typedef node_field_value_listener<sfnode> sfnode_listener; + typedef node_field_value_listener<sfrotation> sfrotation_listener; + typedef node_field_value_listener<sfstring> sfstring_listener; + typedef node_field_value_listener<sftime> sftime_listener; + typedef node_field_value_listener<sfvec2f> sfvec2f_listener; + typedef node_field_value_listener<sfvec2d> sfvec2d_listener; + typedef node_field_value_listener<sfvec3f> sfvec3f_listener; + typedef node_field_value_listener<sfvec3d> sfvec3d_listener; + typedef node_field_value_listener<mfcolor> mfcolor_listener; + typedef node_field_value_listener<mffloat> mffloat_listener; + typedef node_field_value_listener<mfdouble> mfdouble_listener; + typedef node_field_value_listener<mfint32> mfint32_listener; + typedef node_field_value_listener<mfnode> mfnode_listener; + typedef node_field_value_listener<mfrotation> mfrotation_listener; + typedef node_field_value_listener<mfstring> mfstring_listener; + typedef node_field_value_listener<mftime> mftime_listener; + typedef node_field_value_listener<mfvec2f> mfvec2f_listener; + typedef node_field_value_listener<mfvec2d> mfvec2d_listener; + typedef node_field_value_listener<mfvec3f> mfvec3f_listener; + typedef node_field_value_listener<mfvec3d> mfvec3d_listener; + template <typename FieldValue> class event_emitter : *************** *** 455,460 **** exposedfield(openvrml::node & node, const typename FieldValue::value_type & value): ! openvrml::event_listener(node), openvrml::event_emitter(static_cast<const field_value &>(*this)), event_listener_base<Derived>(node), event_emitter_base<Derived>( --- 482,488 ---- exposedfield(openvrml::node & node, const typename FieldValue::value_type & value): ! node_event_listener(node), openvrml::event_emitter(static_cast<const field_value &>(*this)), + node_field_value_listener<FieldValue>(node), event_listener_base<Derived>(node), event_emitter_base<Derived>( *************** *** 468,473 **** abstract_node<Derived>::exposedfield<FieldValue>:: exposedfield(const exposedfield<FieldValue> & obj) throw (): ! openvrml::event_listener(obj.openvrml::event_listener::node()), openvrml::event_emitter(static_cast<const field_value &>(*this)), event_listener_base<Derived>( obj.event_listener_base<Derived>::node()), --- 496,504 ---- abstract_node<Derived>::exposedfield<FieldValue>:: exposedfield(const exposedfield<FieldValue> & obj) throw (): ! openvrml::event_listener(), ! node_event_listener(obj.node_event_listener::node()), openvrml::event_emitter(static_cast<const field_value &>(*this)), + node_field_value_listener<FieldValue>( + obj.node_event_listener::node()), event_listener_base<Derived>( obj.event_listener_base<Derived>::node()), Index: event.h =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/event.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** event.h 7 Oct 2005 22:05:51 -0000 1.8 --- event.h 2 Nov 2005 08:50:24 -0000 1.9 *************** *** 38,48 **** virtual ~event_listener() throw () = 0; openvrml::node & node() const throw (); const std::string eventin_id() const throw (); - virtual field_value::type_id type() const throw () = 0; - protected: ! explicit event_listener(openvrml::node & node) throw (); private: --- 38,59 ---- virtual ~event_listener() throw () = 0; + virtual field_value::type_id type() const throw () = 0; + + protected: + event_listener() throw (); + }; + + + class OPENVRML_API node_event_listener : public virtual event_listener { + openvrml::node * node_; + + public: + virtual ~node_event_listener() throw (); + openvrml::node & node() const throw (); const std::string eventin_id() const throw (); protected: ! explicit node_event_listener(openvrml::node & n) throw (); private: *************** *** 63,67 **** protected: ! explicit field_value_listener(openvrml::node & node) throw (); private: --- 74,78 ---- protected: ! explicit field_value_listener() throw (); private: *************** *** 72,79 **** template <typename FieldValue> ! field_value_listener<FieldValue>::field_value_listener( ! openvrml::node & node) ! throw (): ! event_listener(node) {} --- 83,87 ---- template <typename FieldValue> ! field_value_listener<FieldValue>::field_value_listener() throw () {} *************** *** 126,129 **** --- 134,161 ---- + template <typename FieldValue> + class OPENVRML_API node_field_value_listener : + public virtual node_event_listener, + public field_value_listener<FieldValue> { + public: + virtual ~node_field_value_listener() throw (); + + protected: + explicit node_field_value_listener(openvrml::node & n) throw (); + }; + + template <typename FieldValue> + node_field_value_listener<FieldValue>:: + node_field_value_listener(openvrml::node & n) + throw (): + node_event_listener(n) + {} + + template <typename FieldValue> + node_field_value_listener<FieldValue>::~node_field_value_listener() + throw () + {} + + class OPENVRML_API event_emitter : boost::noncopyable { friend class node; |
From: Braden M. <br...@us...> - 2005-11-02 08:50:31
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2284 Modified Files: ChangeLog Log Message: Factored node-specific parts of event_listener into their own class. This should accommodate things other than nodes being event listeners. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1017 retrieving revision 1.1018 diff -C2 -d -r1.1017 -r1.1018 *** ChangeLog 1 Nov 2005 06:55:24 -0000 1.1017 --- ChangeLog 2 Nov 2005 08:50:24 -0000 1.1018 *************** *** 1,2 **** --- 1,19 ---- + 2005-11-02 Braden McDaniel <br...@en...> + + Factored node-specific parts of event_listener into their own + class. This should accommodate things other than nodes being + event listeners. + + * src/libopenvrml/openvrml/browser.cpp + * src/libopenvrml/openvrml/event.cpp + * src/libopenvrml/openvrml/event.h + * src/libopenvrml/openvrml/exposedfield.h + * src/libopenvrml/openvrml/node.cpp + * src/libopenvrml/openvrml/node_impl_util.cpp + * src/libopenvrml/openvrml/node_impl_util.h + * src/libopenvrml/openvrml/script.cpp + * src/libopenvrml/openvrml/script.h + * src/libopenvrml/openvrml/vrml97node.cpp + 2005-11-01 Braden McDaniel <br...@en...> |
From: Braden M. <br...@us...> - 2005-11-01 06:55:36
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13316 Modified Files: ChangeLog Log Message: Improved documentation for openvrml::node_impl_util namespace. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1016 retrieving revision 1.1017 diff -C2 -d -r1.1016 -r1.1017 *** ChangeLog 30 Oct 2005 03:20:17 -0000 1.1016 --- ChangeLog 1 Nov 2005 06:55:24 -0000 1.1017 *************** *** 1,2 **** --- 1,7 ---- + 2005-11-01 Braden McDaniel <br...@en...> + + * src/libopenvrml/openvrml/node_impl_util.cpp: Improved + documentation for openvrml::node_impl_util namespace. + 2005-10-29 Braden McDaniel <br...@en...> |
From: Braden M. <br...@us...> - 2005-11-01 06:55:36
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13316/src/libopenvrml/openvrml Modified Files: node_impl_util.cpp Log Message: Improved documentation for openvrml::node_impl_util namespace. Index: node_impl_util.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/node_impl_util.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** node_impl_util.cpp 30 Oct 2005 03:20:17 -0000 1.3 --- node_impl_util.cpp 1 Nov 2005 06:55:24 -0000 1.4 *************** *** 33,36 **** --- 33,44 ---- * more concise by abstracting and providing code that many node * implementations are likely to have in common. + * + * Specifically, <code>node_type_impl</code> centralizes the logic for + * generalized field access. By using an instance of this class template + * for your <code>openvrml::node_type</code> implementation you can avoid a lot + * of tedious and repetitive code to implement + * <code>openvrml::node::do_field</code>, + * <code>openvrml::node::do_event_listener</code>, and + * <code>openvrml::node::do_event_emitter</code>. */ |