1    	/* /% C++ %/ */
2    	/***********************************************************************
3    	 * cint (C/C++ interpreter)
4    	 ************************************************************************
5    	 * Header file Type.h
6    	 ************************************************************************
7    	 * Description:
8    	 *  Extended Run Time Type Identification API
9    	 ************************************************************************
10   	 * Copyright(c) 1995~2003  Masaharu Goto 
11   	 *
12   	 * For the licensing terms see the file COPYING
13   	 *
14   	 ************************************************************************/
15   	
16   	#ifndef G__TYPEINFOX_H
17   	#define G__TYPEINFOX_H 
18   	
19   	#ifndef G__API_H
20   	#include "Api.h"
21   	#endif
22   	
23   	namespace Cint {
24   	
25   	/*********************************************************************
26   	* class G__TypeInfo
27   	* 
28   	*********************************************************************/
29   	class 
30   	#ifndef __CINT__
31   	G__EXPORT
32   	#endif
33   	// FIXME: Warning, G__TypeReader in src/bc_type.h inherits from G__TypeInfo, we may need a virtual destructor.
34   	G__TypeInfo : public G__ClassInfo {
35   	  friend class G__DataMemberInfo;
36   	  friend class G__MethodInfo;
37   	  friend class G__MethodArgInfo;
38   	 public:
39   	  ~G__TypeInfo();
40   	  G__TypeInfo(const char* typenamein);
41   	  G__TypeInfo();
42   	  void Init(const char* typenamein);
43   	#ifndef __MAKECINT__
44   	  G__TypeInfo(G__value);
45   	  void Init(G__value&);
46   	  void Init(struct G__var_array*, int);
47   	  G__TypeInfo(const G__TypeInfo&);
48   	  G__TypeInfo& operator=(const G__TypeInfo&);
49   	#endif
50   	  int operator==(const G__TypeInfo&);
51   	  int operator!=(const G__TypeInfo&);
52   	  const char* Name();
53   	  const char* TrueName();
54   	  int Size() const; 
55   	  long Property();
56   	  int IsValid();
57   	  void* New();
58   	
59   	  int Typenum() const;
60   	  int Type() const;
61   	  int Reftype() const;
62   	  int Isconst() const;
63   	
64   	  G__value Value() const;
65   	 protected:
66   	  long type;
67   	  long typenum;
68   	  long reftype;
69   	  long isconst;
70   	
71   	 private:
72   	  int Next(); // prohibit use of next
73   	};
74   	
75   	} // namespace Cint
76   	
77   	using namespace Cint;
78   	#endif
79