// file : CCF/IDL3/Traversal/EventType.tpp // author : Boris Kolpackov // cvs-id : $Id$ namespace CCF { namespace IDL3 { namespace Traversal { template void EventTypeTemplate:: traverse (T& et) { pre (et); name (et); inherits (et); supports (et); names (et); post (et); } template void EventTypeTemplate:: pre (T&) { } template void EventTypeTemplate:: name (T&) { } template void EventTypeTemplate:: inherits (T& et, EdgeDispatcherBase& d) { iterate_and_traverse (et.inherits_begin (), et.inherits_end (), d); } template void EventTypeTemplate:: inherits (T& et) { typename T::InheritsIterator b (et.inherits_begin ()), e (et.inherits_end ()); if (b != e) { inherits_pre (et); iterate_and_traverse (b, e, this->edge_traverser (), *this, &EventTypeTemplate::comma, et); inherits_post (et); } else { inherits_none (et); } } template void EventTypeTemplate:: inherits_pre (T&) { } template void EventTypeTemplate:: inherits_post (T&) { } template void EventTypeTemplate:: inherits_none (T&) { } template void EventTypeTemplate:: supports (T& et, EdgeDispatcherBase& d) { iterate_and_traverse (et.supports_begin (), et.supports_end (), d); } template void EventTypeTemplate:: supports (T& et) { typename T::SupportsIterator b (et.supports_begin ()), e (et.supports_end ()); if (b != e) { supports_pre (et); iterate_and_traverse (b, e, this->edge_traverser (), *this, &EventTypeTemplate::comma, et); supports_post (et); } else { supports_none (et); } } template void EventTypeTemplate:: supports_pre (T&) { } template void EventTypeTemplate:: supports_post (T&) { } template void EventTypeTemplate:: supports_none (T&) { } template void EventTypeTemplate:: post (T&) { } template void EventTypeTemplate:: comma (T&) { } } } }