Logo ROOT  
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
21class TStreamerInfo;
23class TStreamerSTL;
24class TDataMember;
25
26class TXMLPlayer : public TObject {
27public:
28 TXMLPlayer();
29 virtual ~TXMLPlayer();
30
31 Bool_t ProduceCode(TList *cllist, const char *filename);
32
33protected:
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
#define ClassDef(name, id)
Definition: Rtypes.h:322
int type
Definition: TGX11.cxx:120
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:44
Mother of all ROOT objects.
Definition: TObject.h:37
Describe Streamer information for one class version.
Definition: TStreamerInfo.h:46
Basic string class.
Definition: TString.h:131
TString GetMemberTypeName(TDataMember *member)
returns name of simple data type for given data member
Definition: TXMLPlayer.cxx:219
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:164
TString GetStreamerName(TClass *cl)
returns streamer function name for given class
Definition: TXMLPlayer.cxx:147
TString fSetterName
buffer for name of getter method
Definition: TXMLPlayer.h:50
const char * ElementGetter(TClass *cl, const char *membername, int specials=0)
produce code to access member of given class.
Definition: TXMLPlayer.cxx:330
TXMLSetup fXmlSetup
buffer for name of setter method
Definition: TXMLPlayer.h:51
virtual ~TXMLPlayer()
destructor of TXMLPlayer object
Definition: TXMLPlayer.cxx:140
TString GetBasicTypeName(TStreamerElement *el)
return simple data types for given TStreamerElement object
Definition: TXMLPlayer.cxx:257
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:829
TXMLPlayer()
default constructor
Definition: TXMLPlayer.cxx:133
TString GetBasicTypeReaderMethodName(Int_t type, const char *realname)
return functions name to read simple data type from xml file
Definition: TXMLPlayer.cxx:290
void ProduceStreamerSource(std::ostream &fs, TClass *cl, TList *cllist)
Produce source code of streamer function for specified class.
Definition: TXMLPlayer.cxx:426
TString fGetterName
Definition: TXMLPlayer.h:49
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:940
const char * ElementSetter(TClass *cl, const char *membername, char *endch)
Produce code to set value to given data member.
Definition: TXMLPlayer.cxx:389
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:890