00001 // @(#)root/cont:$Id: RStl.h 28529 2009-05-11 16:43:35Z pcanal $ 00002 // Author: Philippe Canal 20/08/2003 00003 00004 /************************************************************************* 00005 * Copyright (C) 1995-2003, Rene Brun, Fons Rademakers and al. * 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 R__RSTL_H 00013 #define R__RSTL_H 00014 00015 ////////////////////////////////////////////////////////////////////////// 00016 // // 00017 // RStl // 00018 // // 00019 // Use to manage the code that needs to be generated for the STL // 00020 // by rootcint. This class is reserved for rootcint and is a // 00021 // singleton. // 00022 // // 00023 ////////////////////////////////////////////////////////////////////////// 00024 00025 #include <string> 00026 #include <set> 00027 00028 namespace std {} using namespace std; 00029 00030 namespace ROOT { 00031 00032 class RStl { 00033 private: 00034 set<string> fList; 00035 00036 public: 00037 static RStl& inst(); 00038 ~RStl() {}; 00039 00040 static string DropDefaultArg(const string &classname); 00041 void GenerateTClassFor(const string& stlClassname); 00042 void Print(); 00043 void WriteClassInit(FILE *file); 00044 void WriteStreamer(FILE *file, G__ClassInfo &stlcl); 00045 void WriteStreamer(FILE *file); 00046 00047 private: 00048 RStl() : fList() {}; 00049 RStl(const RStl&); 00050 RStl& operator=(const RStl&); 00051 }; 00052 00053 } 00054 #endif // R__RSTL_H