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
30namespace clang {
31 class CXXRecordDecl;
32}
33
34namespace cling {
35 class Interpreter;
36}
37
38namespace ROOT {
39 namespace TMetaUtils {
40 class TNormalizedCtxt;
41 }
42}
43
44namespace ROOT {
45namespace 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,
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&);
72 };
73
74}
75}
76#endif // R__RSTL_H
int type
Definition: TGX11.cxx:121
std::set< ROOT::TMetaUtils::AnnotatedRecordDecl, ROOT::TMetaUtils::AnnotatedRecordDecl::CompareByName > list_t
Definition: RStl.h:49
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:126
list_t fList
Definition: RStl.h:50
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:190
RStl(const RStl &)
std::list< RConstructorType > RConstructorTypes
Definition: TClingUtils.h:321
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...