Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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 "TXMLSetup.h"
18
19class TStreamerInfo;
21class TStreamerSTL;
22class TDataMember;
23class TList;
24
25class TXMLPlayer : public TObject {
26public:
27 TXMLPlayer();
28 virtual ~TXMLPlayer();
29
30 Bool_t ProduceCode(TList *cllist, const char *filename);
31
32protected:
34
35 const char *ElementGetter(TClass *cl, const char *membername, int specials = 0);
36 const char *ElementSetter(TClass *cl, const char *membername, char *endch);
37
40 TString GetBasicTypeReaderMethodName(Int_t type, const char *realname);
41 void ProduceStreamerSource(std::ostream &fs, TClass *cl, TList *cllist);
42
43 void ReadSTLarg(std::ostream &fs, TString &argname, int argtyp, Bool_t isargptr, TClass *argcl, TString &tname,
44 TString &ifcond);
45 void WriteSTLarg(std::ostream &fs, const char *accname, int argtyp, Bool_t isargptr, TClass *argcl);
46 Bool_t ProduceSTLstreamer(std::ostream &fs, TClass *cl, TStreamerSTL *el, Bool_t isWriting);
47
48 TString fGetterName; //! buffer for name of getter method
49 TString fSetterName; //! buffer for name of setter method
50 TXMLSetup fXmlSetup; //! buffer for xml names conversion
51
52 ClassDef(TXMLPlayer, 1) // Generation of external xml streamers
53};
54
55#endif
#define ClassDef(name, id)
Definition Rtypes.h:325
int type
Definition TGX11.cxx:121
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition TClass.h:80
All ROOT classes may have RTTI (run time type identification) support added.
Definition TDataMember.h:31
A doubly linked list.
Definition TList.h:38
Mother of all ROOT objects.
Definition TObject.h:41
Describes a persistent version of a class.
Basic string class.
Definition TString.h:136
TString GetMemberTypeName(TDataMember *member)
returns name of simple data type for given data member
Bool_t ProduceCode(TList *cllist, const char *filename)
Produce streamers for provide class list TList should include list of classes, for which code should ...
TString GetStreamerName(TClass *cl)
returns streamer function name for given class
TString fSetterName
buffer for name of getter method
Definition TXMLPlayer.h:49
const char * ElementGetter(TClass *cl, const char *membername, int specials=0)
produce code to access member of given class.
TXMLSetup fXmlSetup
buffer for name of setter method
Definition TXMLPlayer.h:50
virtual ~TXMLPlayer()
destructor of TXMLPlayer object
TString GetBasicTypeName(TStreamerElement *el)
return simple data types for given TStreamerElement object
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.
TXMLPlayer()
default constructor
TString GetBasicTypeReaderMethodName(Int_t type, const char *realname)
return functions name to read simple data type from xml file
void ProduceStreamerSource(std::ostream &fs, TClass *cl, TList *cllist)
Produce source code of streamer function for specified class.
TString fGetterName
Definition TXMLPlayer.h:48
Bool_t ProduceSTLstreamer(std::ostream &fs, TClass *cl, TStreamerSTL *el, Bool_t isWriting)
Produce code of xml streamer for data member of stl type.
const char * ElementSetter(TClass *cl, const char *membername, char *endch)
Produce code to set value to given data member.
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.