ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
TClingMethodArgInfo.h
Go to the documentation of this file.
1 // @(#)root/core/meta:$Id$
2 // Author: Paul Russo 30/07/2012
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
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 ROOT_TClingMethodArgInfo
13 #define ROOT_TClingMethodArgInfo
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // TClingMethodArgInfo //
18 // //
19 // Emulation of the CINT MethodInfo class. //
20 // //
21 // The CINT C++ interpreter provides an interface to metadata about //
22 // the arguments to a function through the MethodArgInfo class. This //
23 // class provides the same functionality, using an interface as close //
24 // as possible to MethodArgInfo but the typedef metadata comes from //
25 // the Clang C++ compiler, not CINT. //
26 // //
27 //////////////////////////////////////////////////////////////////////////
28 
29 
30 namespace cling {
31 class Interpreter;
32 }
33 
34 class TClingMethodInfo;
35 class TClingTypeInfo;
36 
38 
39 private:
40 
41  cling::Interpreter *fInterp; // Cling interpreter, we do *not* own.
42  const TClingMethodInfo *fMethodInfo; // Function we return info about, we do *not* own.
43  int fIdx; // Iterator, current parameter index.
44 
45 public:
46 
47  explicit TClingMethodArgInfo(cling::Interpreter *interp) : fInterp(interp), fMethodInfo(0), fIdx(-1) {}
48  TClingMethodArgInfo(cling::Interpreter *interp, const TClingMethodInfo *mi) : fInterp(interp), fMethodInfo(mi), fIdx(-1) {}
49 
50  bool IsValid() const;
51  int Next();
52  long Property() const;
53  const char *DefaultValue() const;
54  const char *Name() const;
55  const TClingTypeInfo *Type() const;
56  const char *TypeName() const;
57 
58 };
59 
60 #endif // ROOT_TClingMethodArgInfo
TClingMethodArgInfo(cling::Interpreter *interp)
Emulation of the CINT MethodInfo class.
const TClingTypeInfo * Type() const
const TClingMethodInfo * fMethodInfo
TClingMethodArgInfo(cling::Interpreter *interp, const TClingMethodInfo *mi)
const char * TypeName() const
Emulation of the CINT TypeInfo class.
const char * Name() const
const char * DefaultValue() const
Emulation of the CINT MethodInfo class.
cling::Interpreter * fInterp