library: libCore #include "TMethod.h"

# TMethod

class description - source file - inheritance tree (.pdf)

## class TMethod : public TFunction

| Inheritance Chart:

`TObject`

<-

`TNamed`

<-

`TDictionary`

<-

`TFunction`

<-

`TMethod`

        private:

          virtual void CreateSignature()

        public:

                               TMethod(G__MethodInfo* info = 0, TClass* cl = 0)
                               TMethod(const TMethod& org)
                       virtual ~TMethod()
                static TClass* Class()
              virtual TObject* Clone(const char* newname = "") const
          virtual TDataMember* FindDataMember()
                       TClass* GetClass() const
           virtual const char* GetCommentString() const
                virtual TList* GetListOfMethodArgs()
           virtual const char* Getter() const
          virtual TMethodCall* GetterMethod()
               virtual TClass* IsA() const
                 EMenuItemKind IsMenuItem() const
                      TMethod& operator=(const TMethod& rhs)
                  virtual void SetMenuItem(EMenuItemKind menuItem)
          virtual TMethodCall* SetterMethod()
                  virtual void ShowMembers(TMemberInspector& insp, char* parent)
                  virtual void Streamer(TBuffer& b)
                          void StreamerNVirtual(TBuffer& b)

### Data Members

        private:

                TClass* fClass         pointer to the class
          EMenuItemKind fMenuItem      type of menuitem in context menu
                TString fGetter        state getter in case this is a *TOGGLE method
           TMethodCall* fGetterMethod  methodcall for state getter in case this is a *TOGGLE method
           TMethodCall* fSetterMethod  methodcall for state setter in case this is a *TOGGLE method

## Class Description

      Each ROOT class (see TClass) has a linked list of methods.
      This class describes one single method (member function).
      The method info is obtained via the CINT api. See class TCint.

      The method information is used a.o. by the THml class and by the
      TTree class.

TMethod(G__MethodInfo *info, TClass *cl) : TFunction(info)

     Default TMethod ctor. TMethods are constructed in TClass.
     Comment strings are pre-parsed to find out whether the method is
     a context-menu item.

TMethod(const TMethod& orig) : TFunction(orig)

     Copy ctor.

~TMethod()

     Cleanup.

TObject* Clone(const char *newname) const

     Clone method.

const char* GetCommentString()

     Returns a comment string from the class declaration.

void CreateSignature()

     Using the CINT method arg information create a complete signature string.

TDataMember* FindDataMember()

     Tries to guess DataMember from comment string
     and Method's name <==(only if 1 Argument!).
     If more then one argument=> returns pointer to the last argument.
     It also sets MethodArgs' pointers to point to specified data members.

     The form of comment string defining arguments is:
     void XXX(Int_t x1, Float_t y2) //*ARGS={x1=>fX1,y2=>fY2}
     where fX1, fY2 are data fields in the same class.
     ("pointers" to data members)

TMethodCall* GetterMethod()

     Return call environment for the getter method in case this is a
     *TOGGLE method (for the context menu).

TMethodCall* SetterMethod()

     Return call environment for this method in case this is a
     *TOGGLE method which takes a single boolean or integer argument.

TList* GetListOfMethodArgs()

     Returns methodarg list and additionally updates fDataMember in TMethod by
     calling FindDataMember();

### Inline Functions

                 TMethod& operator=(const TMethod& rhs)
                  TClass* GetClass() const
            EMenuItemKind IsMenuItem() const
              const char* Getter() const
                     void SetMenuItem(EMenuItemKind menuItem)
                  TClass* Class()
                  TClass* IsA() const
                     void ShowMembers(TMemberInspector& insp, char* parent)
                     void Streamer(TBuffer& b)
                     void StreamerNVirtual(TBuffer& b)

Author: Rene Brun 09/02/95
Last update: root/meta:$Name: $:$Id: TMethod.cxx,v 1.6 2004/03/12 08:53:04 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *