Logo ROOT   6.12/07
Reference Guide
TXMLPlayer.h
Go to the documentation of this file.
1 // @(#)root/xml:$Id$
2 // Author: Sergey Linev 10.05.2004
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TXMLPlayer
13 #define ROOT_TXMLPlayer
14 
15 #include "TObject.h"
16 
17 #include "TList.h"
18 
19 #include "TXMLSetup.h"
20 
21 class TStreamerInfo;
22 class TStreamerElement;
23 class TStreamerSTL;
24 class TDataMember;
25 
26 class TXMLPlayer : public TObject {
27 public:
28  TXMLPlayer();
29  virtual ~TXMLPlayer();
30 
31  Bool_t ProduceCode(TList *cllist, const char *filename);
32 
33 protected:
35 
36  const char *ElementGetter(TClass *cl, const char *membername, int specials = 0);
37  const char *ElementSetter(TClass *cl, const char *membername, char *endch);
38 
41  TString GetBasicTypeReaderMethodName(Int_t type, const char *realname);
42  void ProduceStreamerSource(std::ostream &fs, TClass *cl, TList *cllist);
43 
44  void ReadSTLarg(std::ostream &fs, TString &argname, int argtyp, Bool_t isargptr, TClass *argcl, TString &tname,
45  TString &ifcond);
46  void WriteSTLarg(std::ostream &fs, const char *accname, int argtyp, Bool_t isargptr, TClass *argcl);
47  Bool_t ProduceSTLstreamer(std::ostream &fs, TClass *cl, TStreamerSTL *el, Bool_t isWriting);
48 
49  TString fGetterName; //! buffer for name of getter method
50  TString fSetterName; //! buffer for name of setter method
51  TXMLSetup fXmlSetup; //! buffer for xml names conversion
52 
53  ClassDef(TXMLPlayer, 1) // Generation of external xml streamers
54 };
55 
56 #endif
Describe Streamer information for one class version.
Definition: TStreamerInfo.h:43
TXMLSetup fXmlSetup
buffer for name of setter method
Definition: TXMLPlayer.h:51
TXMLPlayer()
default constructor
Definition: TXMLPlayer.cxx:135
All ROOT classes may have RTTI (run time type identification) support added.
Definition: TDataMember.h:31
void ProduceStreamerSource(std::ostream &fs, TClass *cl, TList *cllist)
Produce source code of streamer function for specified class.
Definition: TXMLPlayer.cxx:428
Basic string class.
Definition: TString.h:125
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
TString GetBasicTypeReaderMethodName(Int_t type, const char *realname)
return functions name to read simple data type from xml file
Definition: TXMLPlayer.cxx:292
TString GetStreamerName(TClass *cl)
returns streamer function name for given class
Definition: TXMLPlayer.cxx:149
Bool_t ProduceSTLstreamer(std::ostream &fs, TClass *cl, TStreamerSTL *el, Bool_t isWriting)
Produce code of xml streamer for data member of stl type.
Definition: TXMLPlayer.cxx:942
#define ClassDef(name, id)
Definition: Rtypes.h:320
const char * ElementSetter(TClass *cl, const char *membername, char *endch)
Produce code to set value to given data member.
Definition: TXMLPlayer.cxx:391
Bool_t ProduceCode(TList *cllist, const char *filename)
Produce streamers for provide class list TList should include list of classes, for which code should ...
Definition: TXMLPlayer.cxx:166
TString GetBasicTypeName(TStreamerElement *el)
return simple data types for given TStreamerElement object
Definition: TXMLPlayer.cxx:259
A doubly linked list.
Definition: TList.h:44
TString fGetterName
Definition: TXMLPlayer.h:49
void ReadSTLarg(std::ostream &fs, TString &argname, int argtyp, Bool_t isargptr, TClass *argcl, TString &tname, TString &ifcond)
Produce code to read argument of stl container from xml file.
Definition: TXMLPlayer.cxx:831
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:75
TString fSetterName
buffer for name of getter method
Definition: TXMLPlayer.h:50
virtual ~TXMLPlayer()
destructor of TXMLPlayer object
Definition: TXMLPlayer.cxx:142
int type
Definition: TGX11.cxx:120
void WriteSTLarg(std::ostream &fs, const char *accname, int argtyp, Bool_t isargptr, TClass *argcl)
Produce code to write argument of stl container to xml file.
Definition: TXMLPlayer.cxx:892
const char * ElementGetter(TClass *cl, const char *membername, int specials=0)
produce code to access member of given class.
Definition: TXMLPlayer.cxx:332
Mother of all ROOT objects.
Definition: TObject.h:37
TString GetMemberTypeName(TDataMember *member)
returns name of simple data type for given data member
Definition: TXMLPlayer.cxx:221