1    	// @(#)root/meta:$Id$
2    	// Author: Fons Rademakers   07/02/97
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_TFunction
13   	#define ROOT_TFunction
14   	
15   	
16   	//////////////////////////////////////////////////////////////////////////
17   	//                                                                      //
18   	// TFunction                                                            //
19   	//                                                                      //
20   	// Dictionary of global functions (global functions are obtained from   //
21   	// CINT).                                                               //
22   	//                                                                      //
23   	//////////////////////////////////////////////////////////////////////////
24   	
25   	#ifndef ROOT_TDictionary
26   	#include "TDictionary.h"
27   	#endif
28   	
29   	class TFunction : public TDictionary {
30   	
31   	friend class TCint;
32   	friend class TCintWithCling;
33   	
34   	protected:
35   	   MethodInfo_t   *fInfo;            //pointer to CINT function info
36   	   TString         fMangledName;     //Mangled name as determined by CINT.
37   	   TString         fSignature;       //string containing function signature
38   	   TList          *fMethodArgs;      //list of function arguments
39   	
40   	   virtual void    CreateSignature();
41   	
42   	public:
43   	   TFunction(MethodInfo_t *info = 0);
44   	   TFunction(const TFunction &orig);
45   	   TFunction& operator=(const TFunction &rhs);
46   	   virtual            ~TFunction();
47   	   virtual TObject    *Clone(const char *newname="") const;
48   	   virtual const char *GetMangledName() const;
49   	   virtual const char *GetPrototype() const;
50   	   const char         *GetSignature();
51   	   const char         *GetReturnTypeName() const;
52   	   std::string         GetReturnTypeNormalizedName() const;
53   	   TList              *GetListOfMethodArgs();
54   	   Int_t               GetNargs() const;
55   	   Int_t               GetNargsOpt() const;
56   	   void               *InterfaceMethod() const;
57   	   Long_t              Property() const;
58   	
59   	   ClassDef(TFunction,0)  //Dictionary for global function
60   	};
61   	
62   	#endif
63