00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TXMLPlayer
00013 #define ROOT_TXMLPlayer
00014
00015 #ifndef ROOT_TObject
00016 #include "TObject.h"
00017 #endif
00018
00019 #ifndef ROOT_TList
00020 #include "TList.h"
00021 #endif
00022
00023 #ifndef ROOT_TXMLSetup
00024 #include "TXMLSetup.h"
00025 #endif
00026
00027 class TStreamerInfo;
00028 class TStreamerElement;
00029 class TStreamerSTL;
00030 class TDataMember;
00031
00032 class TXMLPlayer : public TObject {
00033 public:
00034 TXMLPlayer();
00035 virtual ~TXMLPlayer();
00036
00037 Bool_t ProduceCode(TList* cllist, const char* filename);
00038
00039 protected:
00040
00041 TString GetStreamerName(TClass* cl);
00042
00043 const char* ElementGetter(TClass* cl, const char* membername, int specials = 0);
00044 const char* ElementSetter(TClass* cl, const char* membername, char* endch);
00045
00046 TString GetMemberTypeName(TDataMember* member);
00047 TString GetBasicTypeName(TStreamerElement* el);
00048 TString GetBasicTypeReaderMethodName(Int_t type, const char* realname);
00049 void ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist);
00050
00051 void ReadSTLarg(ostream& fs, TString& argname, int argtyp, Bool_t isargptr, TClass* argcl, TString& tname, TString& ifcond);
00052 void WriteSTLarg(ostream& fs, const char* accname, int argtyp, Bool_t isargptr, TClass* argcl);
00053 Bool_t ProduceSTLstreamer(ostream& fs, TClass* cl, TStreamerSTL* el, Bool_t isWriting);
00054
00055 TString fGetterName;
00056 TString fSetterName;
00057 TXMLSetup fXmlSetup;
00058
00059 ClassDef(TXMLPlayer,1)
00060 };
00061
00062 #endif