Logo ROOT   6.14/05
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 
31 class TExMap;
32 class TFunctionTemplate;
33 
35 {
36 private:
38  TClass *fClass; // Context of this list. Not owned.
39 
40  TExMap *fIds; // Map from DeclId_t to TFunction*
41  THashList *fUnloaded; // Holder of TFunction for unloaded functions.
42  THashTable fOverloads; // TLists of overloads.
43  ULong64_t fLastLoadMarker; // Represent interpreter state when we last did a full load.
44 
45  TListOfFunctionTemplates(const TListOfFunctionTemplates&); // not implemented
47  TList *GetListForObjectNonConst(const char* name);
48 
49  void MapObject(TObject *obj);
50  void UnmapObject(TObject *obj);
51 
52 public:
53 
56 
57  virtual void Clear(Option_t *option);
58  virtual void Delete(Option_t *option="");
59 
61  virtual TObject *FindObject(const char *name) const;
62  virtual TList *GetListForObject(const char* name) const;
63  virtual TList *GetListForObject(const TObject* obj) const;
64 
65  TFunctionTemplate *Get(DeclId_t id);
66 
67  void AddFirst(TObject *obj);
68  void AddFirst(TObject *obj, Option_t *opt);
69  void AddLast(TObject *obj);
70  void AddLast(TObject *obj, Option_t *opt);
71  void AddAt(TObject *obj, Int_t idx);
72  void AddAfter(const TObject *after, TObject *obj);
73  void AddAfter(TObjLink *after, TObject *obj);
74  void AddBefore(const TObject *before, TObject *obj);
75  void AddBefore(TObjLink *before, TObject *obj);
76 
77  void RecursiveRemove(TObject *obj);
78  TObject *Remove(TObject *obj);
79  TObject *Remove(TObjLink *lnk);
80 
81  void Load();
82  void Unload();
83  void Unload(TFunctionTemplate *func);
84 
85  ClassDef(TListOfFunctionTemplates,0); // List of TFunctions for a class
86 };
87 
88 #endif // ROOT_TListOfFunctionTemplates
void UnmapObject(TObject *obj)
Remove a pair<id, object> from the map of functions and their ids.
const char Option_t
Definition: RtypesCore.h:62
Dictionary for function template This class describes one single function template.
A collection of TFunction objects designed for fast access given a DeclId_t and for keep track of TFu...
TObject * Remove(TObject *obj)
Remove object from the list.
int Int_t
Definition: RtypesCore.h:41
void AddAt(TObject *obj, Int_t idx)
Insert object at location idx in the list.
TObject * FindObject(const char *name) const
Find object using its name.
Definition: THashList.cxx:262
void MapObject(TObject *obj)
Add pair<id, object> to the map of functions and their ids.
const void * DeclId_t
Definition: TDictionary.h:205
THashTable implements a hash table to store TObject&#39;s.
Definition: THashTable.h:35
#define ClassDef(name, id)
Definition: Rtypes.h:320
TList * GetListForObjectNonConst(const char *name)
Return the set of overloads for this name, collecting all available ones.
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
Definition: THashList.h:34
virtual void Clear(Option_t *option)
Remove all objects from the list.
TListOfFunctionTemplates(const TListOfFunctionTemplates &)
TListOfFunctionTemplates & operator=(const TListOfFunctionTemplates &)
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...
virtual TList * GetListForObject(const char *name) const
Return the set of overloads for this name, collecting all available ones.
A doubly linked list.
Definition: TList.h:44
virtual void Delete(Option_t *option="")
Delete all TFunction object files.
void AddLast(TObject *obj)
Add object at the end of the list.
TFunctionTemplate * Get(DeclId_t id)
Return (after creating it if necessary) the TMethod or TFunction describing the function correspondin...
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:75
void AddFirst(TObject *obj)
Add object at the beginning of the list.
unsigned long long ULong64_t
Definition: RtypesCore.h:70
Mother of all ROOT objects.
Definition: TObject.h:37
void Load()
Load all the functions known to the interpreter for the scope &#39;fClass&#39; into this collection.
void RecursiveRemove(TObject *obj)
Remove object from this collection and recursively remove the object from all other objects (and coll...
TDictionary::DeclId_t DeclId_t
void Unload()
Mark &#39;all func&#39; as being unloaded.
void AddAfter(const TObject *after, TObject *obj)
Insert object after object after in the list.
char name[80]
Definition: TGX11.cxx:109
This class stores a (key,value) pair using an external hash.
Definition: TExMap.h:33
void AddBefore(const TObject *before, TObject *obj)
Insert object before object before in the list.