[root] / trunk / core / meta / inc / TFunction.h Repository:
ViewVC logotype

Log of /trunk/core/meta/inc/TFunction.h

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

Revision 48770 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 28 18:56:35 2013 UTC (22 months, 3 weeks ago) by pcanal
File length: 2472 byte(s)
Diff to previous 47998
Add routines to get the desugared type for the return type of a method
and for its arguments.  Namely:
  TFunction::GetReturnTypeNormalizedName
  TMethodArg::GetTypeNormalizedName

Those routines are similar to routines that are named using the words
'TrueName' but have a clarified definition and have a different signature.

A normalized name is defined as:

The name of the type as accessible from the global scope to which 
a 'using namespace std;' has been applied to and with:
  - all typedefs desugared except for Double32_t, Float16_t, [U]Long64_t, 
    std::string and any typedef that is declared within the std namespace
    and points to an entity also declared with std (hence hiding the std library
    implementation 'details').
  - default template parameters removed for STL collections and added for any
    other class templates instances.
  - Fully qualified both itself and all of its component, except that, at least
    for moment, all 'std::' are stripped.

These routines have the signature:

   std::string GetReturnTypeNormalizedName() const;

They do not return 'const char*' to avoid having to have a static buffer
holding the information or recording the information as part of the object.

They do not return TString to avoid the tempting (and compilable) 'const char
*str = method->Get...();' which would lead to inadvertent use of 'destroyed'
memory.

They do return std::string as in C++11, thanks to the move constructor, will no
longer be expansive to return.

If those routines becomes/are very time critical in C++03, we will then either
add a similar routines returning const char* (for example GetTrueTypeName) or a
similar routines taking the output string as an argument by reference.

Revision 47998 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 13 09:35:50 2012 UTC (2 years, 1 month ago) by vvassilev
File length: 2412 byte(s)
Diff to previous 42030
Rename TCintWithCling -> TCling (the part in core/base to come in seconds)
NOTE: Needs full ROOT rebuild (make distclean)

Revision 42030 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 15 22:23:12 2011 UTC (3 years, 2 months ago) by pcanal
File length: 2420 byte(s)
Diff to previous 24077
From Paul: import current state of TCling

Revision 24077 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat May 31 19:39:09 2008 UTC (6 years, 7 months ago) by brun
File length: 2391 byte(s)
Diff to previous 22961
Extend the TInterpreter class to support the CINT API used so far by ROOT.
The concrete implementation of the class is in TCint.
The new functions are essentially interfaces to the existing CINT C++ classes
like G__ClassInfo, G__CallFunc, G__DataMemberInfo, G__MethodInfo, G__TypeInfo
and G__TypedefInfo. Most of these functions will call the Reflex interface
once the CINT/Reflex interface will be available later this year.
All direct calls to CINT are replaced by calls like gCint->ClassInfo_xxx where gCint
points to the TCint implementation.
The existing calls to TCint via gInterpreter are kept because on Windows
gInterpreter does not call directly TCint, but instead call TWin32InterpreterProxy
that in turns call TCint.
On Linux and Mac, gInterpreter and gCint are equivalent.

Once the transformation using gCint will be completed, it will be possible
to specify at startup time which version of CINT (CINT or CINT7) by loading
dynamically TCint or TCint7.--This line, and those below, will be ignored--

M    core/meta/src/TStreamerElement.cxx
M    core/meta/src/TCint.cxx
M    core/meta/src/TGlobal.cxx
M    core/meta/src/TBaseClass.cxx
M    core/meta/src/TDataMember.cxx
M    core/meta/src/TInterpreter.cxx
M    core/meta/src/TClass.cxx
M    core/meta/src/TMethodArg.cxx
M    core/meta/src/TDataType.cxx
M    core/meta/src/TMethodCall.cxx
M    core/meta/src/TIsAProxy.cxx
M    core/meta/src/TMethod.cxx
M    core/meta/src/TFunction.cxx
M    core/meta/inc/TClass.h
M    core/meta/inc/TDictionary.h
M    core/meta/inc/TMethodArg.h
M    core/meta/inc/TDataType.h
M    core/meta/inc/TMethodCall.h
M    core/meta/inc/TMethod.h
M    core/meta/inc/TFunction.h
M    core/meta/inc/TCint.h
M    core/meta/inc/TGlobal.h
M    core/meta/inc/TBaseClass.h
M    core/meta/inc/TDataMember.h
M    core/meta/inc/TInterpreter.h
M    core/thread/src/TThread.cxx
M    core/base/src/TVirtualFitter.cxx
M    core/base/src/TStorage.cxx
M    core/base/src/TQConnection.cxx
M    core/base/src/TROOT.cxx
M    core/base/src/TSystem.cxx
M    core/base/src/TQObject.cxx
M    core/rint/src/TRint.cxx
M    core/rint/src/TTabCom.cxx
M    math/foam/src/TFoam.cxx
M    math/minuit2/src/TFitterMinuit.cxx
M    math/mathcore/src/FunctorCint.cxx
M    math/minuit/src/TMinuit.cxx
M    tree/tree/src/TTree.cxx
M    tree/tree/src/TSelectorCint.cxx
M    tree/tree/src/TSelector.cxx
M    tree/tree/inc/TSelectorCint.h
M    roofit/roofitcore/src/RooGenCategory.cxx
M    roofit/roofitcore/src/RooWorkspace.cxx
M    hist/hist/src/TF1.cxx
M    gui/guibuilder/src/TGuiBldDragManager.cxx
M    net/alien/inc/TAlienSystem.h

Revision 22961 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 3 13:32:57 2008 UTC (6 years, 9 months ago) by rdm
File length: 2505 byte(s)
Diff to previous 20882
move the directories:
  base clib cont meta metautils newdelete pcre rint thread unix utils
  winnt zip
under the new core meta directory.

Revision 20882 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:31:26 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/meta/inc/TFunction.h
File length: 2505 byte(s)
Diff to previous 19826
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.

Revision 19826 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:56:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/meta/inc/TFunction.h
File length: 2505 byte(s)
Diff to previous 19825
imported svn:keywords Id property

Revision 19825 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:49:10 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/meta/inc/TFunction.h
File length: 2554 byte(s)
Diff to previous 16926
remove :$ from tag line

Revision 16926 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 24 14:24:54 2006 UTC (8 years, 2 months ago) by rdm
Original Path: trunk/meta/inc/TFunction.h
File length: 2564 byte(s)
Diff to previous 7030
patch handling namespace CINT of CINT 5-16-16.

Revision 7030 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Aug 4 20:07:42 2003 UTC (11 years, 5 months ago) by brun
Original Path: trunk/meta/inc/TFunction.h
File length: 2522 byte(s)
Diff to previous 6720
from Philippe:

The current implementation of TROOT::GetGlobalFunction had the side effect of creating the byte code for ALL the cint
global function (even if they crash cint but are never used :)).
Also the current code was different for Windows and Unix.

This provides an implementation that is the same on all platform and does not provokes the cint compilation.

Also it now fully relies on TFunction::GetMangledName which is now cached.  The fact that it is not cached was also
causing problems when the file was reload.

Revision 6720 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 13 16:21:21 2003 UTC (11 years, 7 months ago) by rdm
Original Path: trunk/meta/inc/TFunction.h
File length: 2448 byte(s)
Diff to previous 6714
fix some memory leaks in the assignment operators.

Revision 6714 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 13 06:25:01 2003 UTC (11 years, 7 months ago) by brun
Original Path: trunk/meta/inc/TFunction.h
File length: 2438 byte(s)
Diff to previous 6378
From Philippe:
Add new methods:
    TFunction(const TFunction&);
    TFunction& operator=(const TFunction&);
    virtual TObject    *Clone(const char *newname="") const;

Revision 6378 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 4 00:55:49 2003 UTC (11 years, 9 months ago) by rdm
Original Path: trunk/meta/inc/TFunction.h
File length: 2304 byte(s)
Diff to previous 5664
small corrections in white space.

Revision 5664 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 26 10:24:09 2002 UTC (12 years, 2 months ago) by brun
Original Path: trunk/meta/inc/TFunction.h
File length: 2258 byte(s)
Diff to previous 4776
TDictionary derives now from TNamed instead of TObject.
This change simplifies all the meta classes avoiding duplication
of functions GetName, GetTitle, Compare, Hash.
This also removes some coupling with CINT.

Revision 4776 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 26 08:04:00 2002 UTC (12 years, 7 months ago) by brun
Original Path: trunk/meta/inc/TFunction.h
File length: 2406 byte(s)
Diff to previous 1205
Patch from Axel Naumann to support mangled method names in TFunction.
This will allow eg. unique html anchors for overloaded functions.

Revision 1205 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 13 15:13:57 2000 UTC (14 years, 1 month ago) by brun
Original Path: trunk/meta/inc/TFunction.h
File length: 2307 byte(s)
Diff to previous 3
      W A R N I N G   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     ==================================================================
A very long list of changes in this pre-release of version 3.00.
We have modified the signature of many functions (in particular TObject)
to introduce more constness in the system.
You must change your code if your class derives from TObject and uses
one of the modified functions such as ls, Print, Compare, Hash, etc.
The modified functions in TObject have the following signature:
   virtual TObject    *Clone() const;
   virtual Int_t       Compare(const TObject *obj) const;
   virtual void        Delete(Option_t *option=""); // *MENU*
   virtual void        DrawClass() const; // *MENU*
   virtual void        DrawClone(Option_t *option="") const; // *MENU*
   virtual void        Dump() const; // *MENU*
   virtual TObject    *FindObject(const TObject *obj) const;
   virtual char       *GetObjectInfo(Int_t px, Int_t py) const;
   virtual ULong_t     Hash() const;
   virtual void        Inspect() const; // *MENU*
   virtual Bool_t      IsEqual(const TObject *obj) const;
   virtual void        ls(Option_t *option="") const;
   virtual void        Print(Option_t *option="") const;

A similar operation has been done with classes such as TH1, TVirtualPad,
TTree, etc.

Revision 3 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 16 17:00:58 2000 UTC (14 years, 8 months ago) by rdm
Original Path: trunk/meta/inc/TFunction.h
File length: 2234 byte(s)
Copied from: branches/rdm/meta/inc/TFunction.h revision 2
Diff to previous 2
This commit was generated by cvs2svn to compensate for changes in r2,
which included commits to RCS files with non-trunk default branches.

Revision 2 - (view) (download) (as text) (annotate) - [select for diffs]
Added Tue May 16 17:00:58 2000 UTC (14 years, 8 months ago) by rdm
Original Path: branches/rdm/meta/inc/TFunction.h
File length: 2234 byte(s)
Initial import of ROOT into CVS

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9