Logo ROOT   6.18/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
31class TExMap;
33
35{
36private:
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
48
49 void MapObject(TObject *obj);
50 void UnmapObject(TObject *obj);
51
52public:
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
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
int Int_t
Definition: RtypesCore.h:41
unsigned long long ULong64_t
Definition: RtypesCore.h:70
const char Option_t
Definition: RtypesCore.h:62
#define ClassDef(name, id)
Definition: Rtypes.h:326
char name[80]
Definition: TGX11.cxx:109
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:75
const void * DeclId_t
Definition: TDictionary.h:206
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...
TListOfFunctionTemplates & operator=(const TListOfFunctionTemplates &)
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.
void RecursiveRemove(TObject *obj)
Remove object from this collection and recursively remove the object from all other objects (and coll...
TListOfFunctionTemplates(const TListOfFunctionTemplates &)
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.
A doubly linked list.
Definition: TList.h:44
Mother of all ROOT objects.
Definition: TObject.h:37