// $Id: RepGenSimObjText.hpp,v 1.4 2009/03/27 03:14:14 philw Exp $
//
//   class RepGenSimObjText : public RepGenSimObj
//   
//   STUB ... in progress.
//
//--

#ifndef RepGenSimObjTextINCLUDED
#define RepGenSimObjTextINCLUDED

#ifndef RepGenSimObjINCLUDED
#include "RepGenSimObj.hpp"
#endif

#ifndef RepGenSlotINCLUDED
#include "RepGenSlot.hpp"
#endif

#ifndef RepGenUtilsINCLUDED
#include "RepGenUtils.hpp"
#endif

#ifndef cwDlistINCLUDED
#include "cwDlist.hpp"
#endif

#include <QString>

class RwModelReport;
class SimObj;
class cwofstream;

class RepGenSimObjText : public RepGenSimObj
{
  // protected data members from base class:
  //-- RwModelReport* _modelReport;
  //-- SimObj* _simObj;

  public:
    RepGenSimObjText (RwModelReport*, SimObj*);
    virtual ~RepGenSimObjText();

  private:
    // virtual from RepGenSimObj
    virtual void writeObjSummary (cwofstream&);
    virtual void writeMethodTable (cwofstream&);
    virtual void writeSlotLists (cwofstream&);

  private:
    static void writeMethodList (const SimObj*, bool measureOnly, 
                                 QVector<RepGen::ColDat>& colDatVec,
                                 cwofstream&);

    void writeSlotList (bool measureOnly, QVector<RepGen::ColDat>& colDatVec,
                        RepGenSlot::SlotListType, const QString& listTitle,
                        const cwDlist<Slot*>& slotList, cwofstream&);
};

#endif // RepGenSimObjTextINCLUDED
//--- (end RepGenSimObjText.hpp) ---