Logo ROOT   6.21/01
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:
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 
47  TListOfFunctionTemplates(const TListOfFunctionTemplates&); // not implemented
49  TList *GetListForObjectNonConst(const char* name);
50 
51  void MapObject(TObject *obj);
52  void UnmapObject(TObject *obj);
53 
54 public:
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
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:209
THashTable implements a hash table to store TObject&#39;s.
Definition: THashTable.h:35
#define ClassDef(name, id)
Definition: Rtypes.h:326
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...
TClass instances represent classes, structs and namespaces in the ROOT type system.
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.