#ifndef ROOT_TXMLPlayer
#define ROOT_TXMLPlayer
#ifndef ROOT_TObject
#include "TObject.h"
#endif
#ifndef ROOT_TList
#include "TList.h"
#endif
#ifndef ROOT_TXMLSetup
#include "TXMLSetup.h"
#endif
class TStreamerInfo;
class TStreamerElement;
class TStreamerSTL;
class TDataMember;
class TXMLPlayer : public TObject {
public:
TXMLPlayer();
virtual ~TXMLPlayer();
Bool_t ProduceCode(TList* cllist, const char* filename);
protected:
TString GetStreamerName(TClass* cl);
const char* ElementGetter(TClass* cl, const char* membername, int specials = 0);
const char* ElementSetter(TClass* cl, const char* membername, char* endch);
TString GetMemberTypeName(TDataMember* member);
TString GetBasicTypeName(TStreamerElement* el);
TString GetBasicTypeReaderMethodName(Int_t type, const char* realname);
void ProduceStreamerSource(std::ostream& fs, TClass* cl, TList* cllist);
void ReadSTLarg(std::ostream& fs, TString& argname, int argtyp, Bool_t isargptr, TClass* argcl, TString& tname, TString& ifcond);
void WriteSTLarg(std::ostream& fs, const char* accname, int argtyp, Bool_t isargptr, TClass* argcl);
Bool_t ProduceSTLstreamer(std::ostream& fs, TClass* cl, TStreamerSTL* el, Bool_t isWriting);
TString fGetterName;
TString fSetterName;
TXMLSetup fXmlSetup;
ClassDef(TXMLPlayer,1)
};
#endif