22 ClassImp(TFunctionTemplate);
27 TFunctionTemplate::TFunctionTemplate(FuncTempInfo_t *info, TClass *cl) : TDictionary(),
28 fInfo(info), fClass(cl)
31 gCling->FuncTempInfo_Name(fInfo,fName);
32 gCling->FuncTempInfo_Title(fInfo,fTitle);
39 TFunctionTemplate::TFunctionTemplate(
const TFunctionTemplate &orig) : TDictionary(orig)
42 fInfo = gCling->FuncTempInfo_FactoryCopy(orig.fInfo);
51 TFunctionTemplate& TFunctionTemplate::operator=(
const TFunctionTemplate &rhs)
54 gCling->FuncTempInfo_Delete(fInfo);
56 fInfo = gCling->FuncTempInfo_FactoryCopy(rhs.fInfo);
57 gCling->FuncTempInfo_Name(fInfo,fName);
58 gCling->FuncTempInfo_Title(fInfo,fTitle);
68 TFunctionTemplate::~TFunctionTemplate()
70 gCling->FuncTempInfo_Delete(fInfo);
76 TObject *TFunctionTemplate::Clone(
const char *newname)
const
78 TNamed *newobj =
new TFunctionTemplate(*
this);
79 if (newname && strlen(newname)) newobj->SetName(newname);
88 Bool_t TFunctionTemplate::IsValid()
91 if (!fInfo && UpdateInterpreterStateMarker()) {
93 DeclId_t newId = gInterpreter->GetFunction(0, fName);
95 FuncTempInfo_t *info = gInterpreter->FuncTempInfo_Factory(newId);
106 UInt_t TFunctionTemplate::GetTemplateNargs()
const
108 return fInfo ? gCling->FuncTempInfo_TemplateNargs(fInfo) : 0;
114 UInt_t TFunctionTemplate::GetTemplateMinReqArgs()
const
117 return fInfo ? gCling->FuncTempInfo_TemplateMinReqArgs(fInfo) : 0;
123 Long_t TFunctionTemplate::Property()
const
125 return fInfo ? gCling->FuncTempInfo_Property(fInfo) : 0;
131 Long_t TFunctionTemplate::ExtraProperty()
const
133 return fInfo ? gCling->FuncTempInfo_ExtraProperty(fInfo) : 0;
138 TDictionary::DeclId_t TFunctionTemplate::GetDeclId()
const
140 return gInterpreter->GetDeclId(fInfo);
149 Bool_t TFunctionTemplate::Update(FuncTempInfo_t *info)
152 if (fInfo) gCling->FuncTempInfo_Delete(fInfo);
156 if (fInfo) gCling->FuncTempInfo_Delete(fInfo);
158 gCling->FuncTempInfo_Title(fInfo,fTitle);