Logo ROOT  
Reference Guide
RStl.h
Go to the documentation of this file.
1 // @(#)root/cont:$Id$
2 // Author: Philippe Canal 20/08/2003
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2003, Rene Brun, Fons Rademakers and al. *
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 R__RSTL_H
13 #define R__RSTL_H
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // RStl //
18 // //
19 // Use to manage the code that needs to be generated for the STL //
20 // by rootcint. This class is reserved for rootcint and is a //
21 // singleton. //
22 // //
23 //////////////////////////////////////////////////////////////////////////
24 
25 #include <cstdio>
26 #include <set>
27 
28 #include "TClingUtils.h"
29 
30 namespace clang {
31  class CXXRecordDecl;
32 }
33 
34 namespace cling {
35  class Interpreter;
36 }
37 
38 namespace ROOT {
39  namespace TMetaUtils {
40  class TNormalizedCtxt;
41  }
42 }
43 
44 namespace ROOT {
45 namespace Internal {
46 
47  class RStl {
48  private:
49  typedef std::set<ROOT::TMetaUtils::AnnotatedRecordDecl,ROOT::TMetaUtils::AnnotatedRecordDecl::CompareByName> list_t;
51 
52  public:
53  static RStl& Instance();
54  ~RStl() {};
55 
56  void GenerateTClassFor(const char *requestedName, const clang::CXXRecordDecl *stlClass, const cling::Interpreter &interp, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt);
57  void GenerateTClassFor(const clang::QualType &type, const cling::Interpreter &interp, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt);
58  void Print();
59  void WriteClassInit(std::ostream &strm,
60  const cling::Interpreter &interp,
61  const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt,
63  bool &needCollectionProxy,
64  void (*emitStreamerInfo)(const char*) );
65 // void WriteStreamer(FILE *file,const clang::CXXRecordDecl *stlcl);
66 // void WriteStreamer(FILE *file);
67 
68  private:
69  RStl() : fList() {};
70  RStl(const RStl&);
71  RStl& operator=(const RStl&);
72  };
73 
74 }
75 }
76 #endif // R__RSTL_H
ROOT::Internal::RStl::~RStl
~RStl()
Definition: RStl.h:54
ROOT::Internal::RStl
Definition: RStl.h:47
ROOT::Internal::RStl::Print
void Print()
Definition: RStl.cxx:178
ROOT::Internal::RStl::fList
list_t fList
Definition: RStl.h:50
ROOT::Internal::RStl::Instance
static RStl & Instance()
Definition: RStl.cxx:40
ROOT::Internal::RStl::operator=
RStl & operator=(const RStl &)
ROOT::TMetaUtils::TNormalizedCtxt
Definition: TClingUtils.h:138
ROOT::Internal::RStl::WriteClassInit
void WriteClassInit(std::ostream &strm, const cling::Interpreter &interp, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt, const ROOT::TMetaUtils::RConstructorTypes &, bool &needCollectionProxy, void(*emitStreamerInfo)(const char *))
Definition: RStl.cxx:188
clang
Definition: BaseSelectionRule.h:29
TClingUtils.h
ROOT::Internal::RStl::list_t
std::set< ROOT::TMetaUtils::AnnotatedRecordDecl, ROOT::TMetaUtils::AnnotatedRecordDecl::CompareByName > list_t
Definition: RStl.h:49
type
int type
Definition: TGX11.cxx:121
ROOT::Internal::RStl::GenerateTClassFor
void GenerateTClassFor(const char *requestedName, const clang::CXXRecordDecl *stlClass, const cling::Interpreter &interp, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt)
Definition: RStl.cxx:125
ROOT::TMetaUtils::RConstructorTypes
std::list< RConstructorType > RConstructorTypes
Definition: TClingUtils.h:321
ROOT
VSD Structures.
Definition: StringConv.hxx:21
ROOT::Internal::RStl::RStl
RStl()
Definition: RStl.h:69