File indexing completed on 2025-01-18 10:12:35
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef ROOT_TXMLPlayer
0013 #define ROOT_TXMLPlayer
0014
0015 #include "TObject.h"
0016
0017 #include "TXMLSetup.h"
0018
0019 class TStreamerInfo;
0020 class TStreamerElement;
0021 class TStreamerSTL;
0022 class TDataMember;
0023 class TList;
0024
0025 class TXMLPlayer : public TObject {
0026 public:
0027 TXMLPlayer();
0028 ~TXMLPlayer() override;
0029
0030 Bool_t ProduceCode(TList *cllist, const char *filename);
0031
0032 protected:
0033 TString GetStreamerName(TClass *cl);
0034
0035 const char *ElementGetter(TClass *cl, const char *membername, int specials = 0);
0036 const char *ElementSetter(TClass *cl, const char *membername, char *endch);
0037
0038 TString GetMemberTypeName(TDataMember *member);
0039 TString GetBasicTypeName(TStreamerElement *el);
0040 TString GetBasicTypeReaderMethodName(Int_t type, const char *realname);
0041 void ProduceStreamerSource(std::ostream &fs, TClass *cl, TList *cllist);
0042
0043 void ReadSTLarg(std::ostream &fs, TString &argname, int argtyp, Bool_t isargptr, TClass *argcl, TString &tname,
0044 TString &ifcond);
0045 void WriteSTLarg(std::ostream &fs, const char *accname, int argtyp, Bool_t isargptr, TClass *argcl);
0046 Bool_t ProduceSTLstreamer(std::ostream &fs, TClass *cl, TStreamerSTL *el, Bool_t isWriting);
0047
0048 TString fGetterName;
0049 TString fSetterName;
0050 TXMLSetup fXmlSetup;
0051
0052 ClassDefOverride(TXMLPlayer, 1)
0053 };
0054
0055 #endif