Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:12:35

0001 // @(#)root/xml:$Id$
0002 // Author: Sergey Linev  10.05.2004
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
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; //!  buffer for name of getter method
0049    TString fSetterName; //!  buffer for name of setter method
0050    TXMLSetup fXmlSetup; //!  buffer for xml names conversion
0051 
0052    ClassDefOverride(TXMLPlayer, 1) // Generation of external xml streamers
0053 };
0054 
0055 #endif