TXMLPlayer.h

Go to the documentation of this file.
00001 // @(#)root/xml:$Id: TXMLPlayer.h 20882 2007-11-19 11:31:26Z rdm $
00002 // Author: Sergey Linev  10.05.2004
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 
00012 #ifndef ROOT_TXMLPlayer
00013 #define ROOT_TXMLPlayer
00014 
00015 #ifndef ROOT_TObject
00016 #include "TObject.h"
00017 #endif
00018 
00019 #ifndef ROOT_TList
00020 #include "TList.h"
00021 #endif
00022 
00023 #ifndef ROOT_TXMLSetup
00024 #include "TXMLSetup.h"
00025 #endif
00026 
00027 class TStreamerInfo;
00028 class TStreamerElement;
00029 class TStreamerSTL;
00030 class TDataMember;
00031 
00032 class TXMLPlayer : public TObject {
00033    public:
00034       TXMLPlayer();
00035       virtual ~TXMLPlayer();
00036       
00037       Bool_t ProduceCode(TList* cllist, const char* filename);
00038       
00039    protected:
00040    
00041       TString GetStreamerName(TClass* cl);
00042       
00043       const char* ElementGetter(TClass* cl, const char* membername, int specials = 0);
00044       const char* ElementSetter(TClass* cl, const char* membername, char* endch);
00045       
00046       TString GetMemberTypeName(TDataMember* member);
00047       TString GetBasicTypeName(TStreamerElement* el);
00048       TString GetBasicTypeReaderMethodName(Int_t type, const char* realname);
00049       void ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist);
00050       
00051       void ReadSTLarg(ostream& fs, TString& argname, int argtyp, Bool_t isargptr, TClass* argcl, TString& tname, TString& ifcond);
00052       void WriteSTLarg(ostream& fs, const char* accname, int argtyp, Bool_t isargptr, TClass* argcl);
00053       Bool_t ProduceSTLstreamer(ostream& fs, TClass* cl, TStreamerSTL* el, Bool_t isWriting);
00054       
00055       TString fGetterName;                   //!  buffer for name of getter method
00056       TString fSetterName;                   //!  buffer for name of setter method
00057       TXMLSetup fXmlSetup;                   //!  buffer for xml names convertion
00058 
00059    ClassDef(TXMLPlayer,1) // Generation of external xml streamers
00060 };
00061 
00062 #endif

Generated on Tue Jul 5 14:28:32 2011 for ROOT_528-00b_version by  doxygen 1.5.1