// file : CCF/IDL2/Traversal/Interface.tpp // author : Boris Kolpackov // cvs-id : $Id$ namespace CCF { namespace IDL2 { namespace Traversal { template void InterfaceTemplate:: traverse (T& i) { pre (i); name (i); inherits (i); names (i); post (i); } template void InterfaceTemplate:: pre (T&) { } template void InterfaceTemplate:: name (T&) { } template void InterfaceTemplate:: inherits (T& i, EdgeDispatcherBase& d) { iterate_and_traverse (i.inherits_begin (), i.inherits_end (), d); } template void InterfaceTemplate:: inherits (T& i) { typename T::InheritsIterator b (i.inherits_begin ()), e (i.inherits_end ()); if (b != e) { inherits_pre (i); iterate_and_traverse (b, e, this->edge_traverser (), *this, &InterfaceTemplate::comma, i); inherits_post (i); } else { inherits_none (i); } } template void InterfaceTemplate:: inherits_pre (T&) { } template void InterfaceTemplate:: inherits_post (T&) { } template void InterfaceTemplate:: inherits_none (T&) { } template void InterfaceTemplate:: post (T&) { } template void InterfaceTemplate:: comma (T&) { } } } }