Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TFunctionTemplate.cxx
Go to the documentation of this file.
1// @(#)root/meta:$Id$
2// Author: Philippe Canal November 2013.
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/** \class TFunctionTemplate
13Dictionary for function template
14This class describes one single function template.
15*/
16
17#include "TFunctionTemplate.h"
18#include "TInterpreter.h"
19#include "TClass.h"
20
21
22////////////////////////////////////////////////////////////////////////////////
23/// Default TFunctionTemplate ctor.
24
33
34////////////////////////////////////////////////////////////////////////////////
35/// Copy operator.
36
38{
39 if (orig.fInfo) {
41 } else
42 fInfo = nullptr;
43 fClass = orig.fClass;
44}
45
46////////////////////////////////////////////////////////////////////////////////
47/// Assignment operator.
48
50{
51 if (this != &rhs) {
53 if (rhs.fInfo) {
57 } else
58 fInfo = nullptr;
59
60 fClass = rhs.fClass;
61 }
62 return *this;
63}
64
65////////////////////////////////////////////////////////////////////////////////
66/// TFunctionTemplate dtor deletes adopted CINT FuncTempInfo.
67
72
73////////////////////////////////////////////////////////////////////////////////
74/// Clone method.
75
77{
78 TNamed *newobj = new TFunctionTemplate(*this);
79 if (newname && strlen(newname)) newobj->SetName(newname);
80 return newobj;
81}
82
83////////////////////////////////////////////////////////////////////////////////
84/// Return true if this function template object is pointing to a currently
85/// loaded function. If a function is unloaded after the TFunction
86/// is created, the TFunction will be set to be invalid.
87
89{
90 // Register the transaction when checking the validity of the object.
92 // Only for global functions. For data member functions TMethod does it.
93 DeclId_t newId = gInterpreter->GetFunction(nullptr, fName);
94 if (newId) {
95 FuncTempInfo_t *info = gInterpreter->FuncTempInfo_Factory(newId);
96 Update(info);
97 }
98 return newId != nullptr;
99 }
100 return fInfo != nullptr;
101}
102
103////////////////////////////////////////////////////////////////////////////////
104/// Number of function arguments.
105
110
111////////////////////////////////////////////////////////////////////////////////
112/// Number of function optional (default) arguments.
113
115{
116 // FIXME: when unload this is an over-estimate.
118}
119
120////////////////////////////////////////////////////////////////////////////////
121/// Get property description word. For meaning of bits see EProperty.
122
127
128////////////////////////////////////////////////////////////////////////////////
129/// Get the properties not already defined in Property.See TDictionary's EFunctionProperty.
130
135
136////////////////////////////////////////////////////////////////////////////////
137
142
143////////////////////////////////////////////////////////////////////////////////
144/// Update the TFunctionTemplate to reflect the new info.
145///
146/// This can be used to implement unloading (info == 0) and then reloading
147/// (info being the 'new' decl address).
148
150{
151 if (info == nullptr) {
153 fInfo = nullptr;
154 return kTRUE;
155 } else {
157 fInfo = info;
159 return kTRUE;
160 }
161}
162
Cppyy::TCppType_t fClass
long Long_t
Signed long integer 4 bytes (long). Size depends on architecture.
Definition RtypesCore.h:68
constexpr Bool_t kTRUE
Definition RtypesCore.h:107
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
R__EXTERN TInterpreter * gCling
#define gInterpreter
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition TClass.h:84
This class defines an abstract interface that must be implemented by all classes that contain diction...
Bool_t UpdateInterpreterStateMarker()
the Cling ID of the transaction that last updated the object
const void * DeclId_t
Dictionary for function template This class describes one single function template.
Long_t Property() const override
Get property description word. For meaning of bits see EProperty.
virtual ~TFunctionTemplate()
TFunctionTemplate dtor deletes adopted CINT FuncTempInfo.
virtual bool Update(FuncTempInfo_t *info)
Update the TFunctionTemplate to reflect the new info.
DeclId_t GetDeclId() const
FuncTempInfo_t * fInfo
UInt_t GetTemplateMinReqArgs() const
Number of function optional (default) arguments.
virtual Bool_t IsValid()
Return true if this function template object is pointing to a currently loaded function.
TFunctionTemplate & operator=(const TFunctionTemplate &rhs)
Assignment operator.
UInt_t GetTemplateNargs() const
Number of function arguments.
TObject * Clone(const char *newname="") const override
Clone method.
TFunctionTemplate(FuncTempInfo_t *info, TClass *cl)
Default TFunctionTemplate ctor.
Long_t ExtraProperty() const
Get the properties not already defined in Property.See TDictionary's EFunctionProperty.
virtual Long_t FuncTempInfo_Property(FuncTempInfo_t *) const =0
virtual Long_t FuncTempInfo_ExtraProperty(FuncTempInfo_t *) const =0
virtual UInt_t FuncTempInfo_TemplateMinReqArgs(FuncTempInfo_t *) const =0
virtual UInt_t FuncTempInfo_TemplateNargs(FuncTempInfo_t *) const =0
virtual FuncTempInfo_t * FuncTempInfo_FactoryCopy(FuncTempInfo_t *) const =0
virtual void FuncTempInfo_Name(FuncTempInfo_t *, TString &name) const =0
virtual void FuncTempInfo_Delete(FuncTempInfo_t *) const =0
virtual void FuncTempInfo_Title(FuncTempInfo_t *, TString &title) const =0
The TNamed class is the base class for all named ROOT classes.
Definition TNamed.h:29
TString fTitle
Definition TNamed.h:33
TString fName
Definition TNamed.h:32
Mother of all ROOT objects.
Definition TObject.h:41