00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TMakeProject
00013 #define ROOT_TMakeProject
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <stdio.h>
00025 #ifndef ROOT_TOBJECT_H
00026 #include "TString.h"
00027 #endif
00028
00029 class TList;
00030 class TVirtualStreamerInfo;
00031 class TStreamerElement;
00032
00033 class TMakeProject
00034 {
00035 private:
00036 static void GenerateMissingStreamerInfo(TList *extrainfos, const char *clname, Bool_t iscope);
00037 public:
00038 static void AddUniqueStatement(FILE *fp, const char *statement, char *inclist);
00039 static void AddInclude(FILE *fp, const char *header, Bool_t system, char *inclist);
00040 static void ChopFileName(TString &name, Int_t limit);
00041 static TString GetHeaderName(const char *name, const TList *extrainfos, Bool_t includeNested = kFALSE);
00042 static UInt_t GenerateClassPrefix(FILE *fp, const char *clname, Bool_t top, TString &protoname, UInt_t *numberOfClasses, Int_t implementEmptyClass = kFALSE, Bool_t needGenericTemplate = kFALSE);
00043 static void GenerateMissingStreamerInfos(TList *extrainfos, TStreamerElement *element);
00044 static void GenerateMissingStreamerInfos(TList *extrainfos, const char *clname);
00045 static UInt_t GenerateForwardDeclaration(FILE *fp, const char *clname, char *inclist, Bool_t implementEmptyClass, Bool_t needGenericTemplate, const TList *extrainfos);
00046 static UInt_t GenerateIncludeForTemplate(FILE *fp, const char *clname, char *inclist, Bool_t forward, const TList *extrainfos);
00047 static TString UpdateAssociativeToVector(const char *name);
00048 static void GeneratePostDeclaration(FILE *fp, const TVirtualStreamerInfo *info, char *inclist);
00049 };
00050
00051 #endif // ROOT_TMakeProject
00052