1    	// @(#)root/meta:$Id$
2    	// Author: Rene Brun   04/02/95
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_TMethodArg
13   	#define ROOT_TMethodArg
14   	
15   	
16   	//////////////////////////////////////////////////////////////////////////
17   	//                                                                      //
18   	// TMethodArg                                                           //
19   	//                                                                      //
20   	// Dictionary interface for a method argument.                          //
21   	//                                                                      //
22   	//////////////////////////////////////////////////////////////////////////
23   	
24   	#ifndef ROOT_TDictionary
25   	#include "TDictionary.h"
26   	#endif
27   	
28   	#include "TDataMember.h"
29   	
30   	class TFunction;
31   	class TMethod;
32   	
33   	class TMethodArg : public TDictionary {
34   	
35   	friend class TMethod;
36   	
37   	private:
38   	   TMethodArg(const TMethodArg&);    // Not implemented
39   	   TMethodArg& operator=(const TMethodArg&);    // Not implemented
40   	
41   	   MethodArgInfo_t   *fInfo;         //pointer to CINT method argument info
42   	   TFunction         *fMethod;       //pointer to the method or global function
43   	   TDataMember       *fDataMember;   //TDataMember pointed by this arg,to get values and options from.
44   	
45   	public:
46   	   TMethodArg(MethodArgInfo_t *info = 0, TFunction *method = 0);
47   	   virtual       ~TMethodArg();
48   	   const char    *GetDefault() const;
49   	   TFunction     *GetMethod() const { return fMethod; }
50   	   const char    *GetTypeName() const;
51   	   const char    *GetFullTypeName() const;
52   	   std::string    GetTypeNormalizedName() const;
53   	   Long_t         Property() const;
54   	
55   	   TDataMember   *GetDataMember() const;
56   	   TList         *GetOptions() const;
57   	
58   	   ClassDef(TMethodArg,0)  //Dictionary for a method argument
59   	};
60   	
61   	#endif
62   	
63