00001 // @(#)root/meta:$Id: TFunction.h 24077 2008-05-31 19:39:09Z brun $ 00002 // Author: Fons Rademakers 07/02/97 00003 00004 /************************************************************************* 00005 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * 00006 * All rights reserved. * 00007 * * 00008 * For the licensing terms see $ROOTSYS/LICENSE. * 00009 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00010 *************************************************************************/ 00011 00012 #ifndef ROOT_TFunction 00013 #define ROOT_TFunction 00014 00015 00016 ////////////////////////////////////////////////////////////////////////// 00017 // // 00018 // TFunction // 00019 // // 00020 // Dictionary of global functions (global functions are obtained from // 00021 // CINT). // 00022 // // 00023 ////////////////////////////////////////////////////////////////////////// 00024 00025 #ifndef ROOT_TDictionary 00026 #include "TDictionary.h" 00027 #endif 00028 00029 class TFunction : public TDictionary { 00030 00031 friend class TCint; 00032 00033 protected: 00034 MethodInfo_t *fInfo; //pointer to CINT function info 00035 TString fMangledName; //Mangled name as determined by CINT. 00036 TString fSignature; //string containing function signature 00037 TList *fMethodArgs; //list of function arguments 00038 00039 virtual void CreateSignature(); 00040 00041 public: 00042 TFunction(MethodInfo_t *info = 0); 00043 TFunction(const TFunction &orig); 00044 TFunction& operator=(const TFunction &rhs); 00045 virtual ~TFunction(); 00046 virtual TObject *Clone(const char *newname="") const; 00047 virtual const char *GetMangledName() const; 00048 virtual const char *GetPrototype() const; 00049 const char *GetSignature(); 00050 const char *GetReturnTypeName() const; 00051 TList *GetListOfMethodArgs(); 00052 Int_t GetNargs() const; 00053 Int_t GetNargsOpt() const; 00054 void *InterfaceMethod() const; 00055 Long_t Property() const; 00056 00057 ClassDef(TFunction,0) //Dictionary for global function 00058 }; 00059 00060 #endif