Logo ROOT  
Reference Guide
TListOfFunctionTemplates.h
Go to the documentation of this file.
1// @(#)root/cont
2// Author: Philippe Canal Aug 2013
3
4/*************************************************************************
5 * Copyright (C) 1995-2013, 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#ifndef ROOT_TListOfFunctionTemplates
13#define ROOT_TListOfFunctionTemplates
14
15//////////////////////////////////////////////////////////////////////////
16// //
17// TListOfFunctionTemplates //
18// //
19// A collection of TFunctionTemplate objects designed for fast access //
20// given a DeclId_t and for keep track of TFunctionTempalte that were //
21// described unloaded function. //
22// //
23//////////////////////////////////////////////////////////////////////////
24
25#include "THashList.h"
26
27#include "THashTable.h"
28
29#include "TDictionary.h"
30
31class TExMap;
33
35{
36private:
37 friend class TClass;
38
40 TClass *fClass; // Context of this list. Not owned.
41
42 TExMap *fIds; // Map from DeclId_t to TFunction*
43 THashList *fUnloaded; // Holder of TFunction for unloaded functions.
44 THashTable fOverloads; // TLists of overloads.
45 ULong64_t fLastLoadMarker; // Represent interpreter state when we last did a full load.
46
50
51 void MapObject(TObject *obj);
52 void UnmapObject(TObject *obj);
53
54public:
55
58
59 virtual void Clear(Option_t *option);
60 virtual void Delete(Option_t *option="");
61
63 virtual TObject *FindObject(const char *name) const;
64 virtual TList *GetListForObject(const char* name) const;
65 virtual TList *GetListForObject(const TObject* obj) const;
66
68
69 void AddFirst(TObject *obj);
70 void AddFirst(TObject *obj, Option_t *opt);
71 void AddLast(TObject *obj);
72 void AddLast(TObject *obj, Option_t *opt);
73 void AddAt(TObject *obj, Int_t idx);
74 void AddAfter(const TObject *after, TObject *obj);
75 void AddAfter(TObjLink *after, TObject *obj);
76 void AddBefore(const TObject *before, TObject *obj);
77 void AddBefore(TObjLink *before, TObject *obj);
78
79 void RecursiveRemove(TObject *obj);
80 TObject *Remove(TObject *obj);
81 TObject *Remove(TObjLink *lnk);
82
83 void Load();
84 void Unload();
85 void Unload(TFunctionTemplate *func);
86
87 ClassDef(TListOfFunctionTemplates,0); // List of TFunctions for a class
88};
89
90#endif // ROOT_TListOfFunctionTemplates
int Int_t
Definition: RtypesCore.h:45
unsigned long long ULong64_t
Definition: RtypesCore.h:81
const char Option_t
Definition: RtypesCore.h:66
#define ClassDef(name, id)
Definition: Rtypes.h:325
char name[80]
Definition: TGX11.cxx:110
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:80
const void * DeclId_t
Definition: TDictionary.h:223
This class stores a (key,value) pair using an external hash.
Definition: TExMap.h:33
Dictionary for function template This class describes one single function template.
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
Definition: THashList.h:34
TObject * FindObject(const char *name) const
Find object using its name.
Definition: THashList.cxx:262
THashTable implements a hash table to store TObject's.
Definition: THashTable.h:35
A collection of TFunction objects designed for fast access given a DeclId_t and for keep track of TFu...
TDictionary::DeclId_t DeclId_t
void AddFirst(TObject *obj)
Add object at the beginning of the list.
virtual TObject * FindObject(const char *name) const
Specialize FindObject to do search for the a function just by name or create it if its not already in...
TFunctionTemplate * Get(DeclId_t id)
Return (after creating it if necessary) the TMethod or TFunction describing the function correspondin...
virtual void Clear(Option_t *option)
Remove all objects from the list.
void AddBefore(const TObject *before, TObject *obj)
Insert object before object before in the list.
void Load()
Load all the functions known to the interpreter for the scope 'fClass' into this collection.
void AddAfter(const TObject *after, TObject *obj)
Insert object after object after in the list.
void Unload()
Mark 'all func' as being unloaded.
TObject * Remove(TObject *obj)
Remove object from the list.
virtual void Delete(Option_t *option="")
Delete all TFunction object files.
TListOfFunctionTemplates & operator=(const TListOfFunctionTemplates &)=delete
void RecursiveRemove(TObject *obj)
Remove object from this collection and recursively remove the object from all other objects (and coll...
virtual TList * GetListForObject(const char *name) const
Return the set of overloads for this name, collecting all available ones.
void MapObject(TObject *obj)
Add pair<id, object> to the map of functions and their ids.
TList * GetListForObjectNonConst(const char *name)
Return the set of overloads for this name, collecting all available ones.
void AddAt(TObject *obj, Int_t idx)
Insert object at location idx in the list.
void UnmapObject(TObject *obj)
Remove a pair<id, object> from the map of functions and their ids.
void AddLast(TObject *obj)
Add object at the end of the list.
TListOfFunctionTemplates(const TListOfFunctionTemplates &)=delete
A doubly linked list.
Definition: TList.h:44
Mother of all ROOT objects.
Definition: TObject.h:37