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 <string>
27#include <set>
28
29#include "TClingUtils.h"
30
31namespace clang {
32 class CXXRecordDecl;
33}
34
35namespace cling {
36 class Interpreter;
37}
38
39namespace ROOT {
40 namespace TMetaUtils {
41 class TNormalizedCtxt;
42 }
43}
44
45namespace ROOT {
46namespace Internal {
47
48 class RStl {
49 private:
50 typedef std::set<ROOT::TMetaUtils::AnnotatedRecordDecl,ROOT::TMetaUtils::AnnotatedRecordDecl::CompareByName> list_t;
52
53 public:
54 static RStl& Instance();
55 ~RStl() {};
56
57 void GenerateTClassFor(const char *requestedName, const clang::CXXRecordDecl *stlClass, const cling::Interpreter &interp, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt);
58 void GenerateTClassFor(const clang::QualType &type, const cling::Interpreter &interp, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt);
59 void Print();
60 void WriteClassInit(std::ostream &strm,
61 const cling::Interpreter &interp,
64 bool &needCollectionProxy,
65 void (*emitStreamerInfo)(const char*) );
66// void WriteStreamer(FILE *file,const clang::CXXRecordDecl *stlcl);
67// void WriteStreamer(FILE *file);
68
69 private:
70 RStl() : fList() {};
71 RStl(const RStl&);
73 };
74
75}
76}
77#endif // R__RSTL_H
int type
Definition: TGX11.cxx:120
std::set< ROOT::TMetaUtils::AnnotatedRecordDecl, ROOT::TMetaUtils::AnnotatedRecordDecl::CompareByName > list_t
Definition: RStl.h:50
RStl & operator=(const RStl &)
void GenerateTClassFor(const char *requestedName, const clang::CXXRecordDecl *stlClass, const cling::Interpreter &interp, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt)
Definition: RStl.cxx:125
list_t fList
Definition: RStl.h:51
static RStl & Instance()
Definition: RStl.cxx:40
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
RStl(const RStl &)
std::list< RConstructorType > RConstructorTypes
Definition: TClingUtils.h:318
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
Definition: StringConv.hxx:21