35 #ifndef ANA_OBJECT_OBJECTUTILS_D_H 
   36 #define ANA_OBJECT_OBJECTUTILS_D_H 
   46   template <
typename iterator>
 
   49     const std::set<AObject *> & setobj )
 
   53     AObject::ParentList::const_iterator   ip, fp;
 
   56     std::set<AObject *> setobj2;
 
   57     const std::set<AObject *> *psetobj = &setobj;
 
   60       for( obj=begin; obj!=end; ++obj )
 
   61         setobj2.insert( *obj );
 
   64     std::set<AObject *>::const_iterator soe = psetobj->end();
 
   66     for( obj=begin; obj!=end; ++obj )
 
   68       for( ip=(*obj)->Parents().begin(), fp=(*obj)->Parents().end();
 
   69           ip!=fp && psetobj->find( *ip ) == soe; ++ip ) {}
 
   76         switch( (*obj)->type() )
 
   84             if( !(*io)->name().empty() )
 
   85               cat_name += (*io)->name();
 
   87               cat_name += 
"<unnamed>";
 
   88             for( ++io; io!=fo; ++io )
 
   91                 if( !(*io)->name().empty() )
 
   92                   cat_name += (*io)->name();
 
   94                   cat_name += 
"<unnamed>";
 
  100           if( !(*obj)->name().empty() )
 
  101             cat_name += (*obj)->name();
 
  103             cat_name += 
"<unnamed>";
 
  107       if( limit != 0 && cat_name.length() >= limit )
 
  109         cat_name.replace( limit, cat_name.length(), 
" ..." );
 
Multi-object generic iterator.
Multi-object : base abstract class for objects that contain others.
static std::string catObjectNames(const std::set< AObject * > &setobj, size_t limit=0)