Example #1
0
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
bool
SuifPrinterModule::print_stl(ostream& output, 
			     const ObjectWrapper &obj,
			     const LString &name, int _indent,int deref = 0)
{
  const Address what = obj.get_address();
  const MetaClass* type = obj.get_meta_class();
   int field_deref = deref?deref-1:0;
   output << type->get_instance_name()
              << '(' << type->get_meta_class_id() << ") ";
   if (name)
         output << ' ' << name << ' ';
   STLMetaClass *p = (STLMetaClass*) type;
   ListIterator* it = (ListIterator*) p->get_iterator(what);
   output << '[' << it->length() << "] ";
   if (it->current()) {
          //output << "{\n";
          output << endl;
          //while (it->is_valid()) {
	  for (; it->is_valid(); it->next())
	    {
	      ObjectWrapper obj(it->current(), it->current_meta_class());
	      //               const MetaClass* currentMetaClass = it->current_meta_class();
	      //               const Address curAddr = it->current();
               if (!obj.is_null()) {
                  indent(output, _indent+istep);
                  print2(output, obj, it->current_name(),
                         _indent+istep, field_deref);
                }
	       //it->next();
	    }
          //}
	  //          } while (it->is_valid());
          indent(output, _indent);
          //output << "}\n";
   }
   else
          output <<" {0x0}\n";
   delete it;
   return true;
}