#ifndef ROO_PRINTABLE
#define ROO_PRINTABLE
class TNamed ;
#include "Riosfwd.h"
#include "Rtypes.h"
#include "TString.h"
class RooPrintable {
public:
inline RooPrintable() { }
inline virtual ~RooPrintable() { }
enum ContentsOption { kName=1, kClassName=2, kValue=4, kArgs=8, kExtras=16, kAddress=32, kTitle=64, kCollectionHeader=128} ;
enum StyleOption { kInline=1, kSingleLine=2, kStandard=3, kVerbose=4, kTreeStructure=5 } ;
virtual void printStream(std::ostream& os, Int_t contents, StyleOption style, TString indent="") const ;
virtual void printAddress(std::ostream& os) const ;
virtual void printName(std::ostream& os) const ;
virtual void printTitle(std::ostream& os) const ;
virtual void printClassName(std::ostream& os) const ;
virtual void printValue(std::ostream& os) const ;
virtual void printArgs(std::ostream& os) const ;
virtual void printExtras(std::ostream& os) const ;
virtual void printMultiline(std::ostream& os, Int_t contents, Bool_t verbose=kFALSE, TString indent="") const ;
virtual void printTree(std::ostream& os, TString indent="") const ;
static std::ostream& defaultPrintStream(std::ostream *os= 0);
virtual Int_t defaultPrintContents(Option_t* opt) const ;
virtual StyleOption defaultPrintStyle(Option_t* opt) const ;
static void nameFieldLength(Int_t newLen) ;
protected:
static Int_t _nameLength ;
ClassDef(RooPrintable,1)
};
namespace RooFit {
std::ostream& operator<<(std::ostream& os, const RooPrintable& rp) ;
}
#ifndef __CINT__
using RooFit::operator<< ;
#endif
#endif