Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
Manager.h
Go to the documentation of this file.
1
8#ifndef PANDORA_MANAGER_H
9#define PANDORA_MANAGER_H 1
10
12#include "Pandora/StatusCodes.h"
13
14namespace pandora
15{
16
17class Algorithm;
18class Pandora;
19
20//------------------------------------------------------------------------------------------------------------------------------------------
21
25template<typename T>
27{
28public:
34 Manager(const Pandora *const pPandora);
35
39 virtual ~Manager();
40
41protected:
42 typedef MANAGED_CONTAINER<const T *> ObjectList;
43
50 virtual StatusCode GetList(const std::string &listName, const ObjectList *&pObjectList) const;
51
58 virtual StatusCode GetCurrentList(const ObjectList *&pObjectList, std::string &listName) const;
59
65 virtual StatusCode GetCurrentListName(std::string &listName) const;
66
74 virtual StatusCode GetAlgorithmInputList(const Algorithm *const pAlgorithm, const ObjectList *&pObjectList, std::string &listName) const;
75
82 virtual StatusCode GetAlgorithmInputListName(const Algorithm *const pAlgorithm, std::string &listName) const;
83
89 virtual StatusCode ResetCurrentListToAlgorithmInputList(const Algorithm *const pAlgorithm);
90
97 virtual StatusCode ReplaceCurrentAndAlgorithmInputLists(const Algorithm *const pAlgorithm, const std::string &listName);
98
104 virtual StatusCode DropCurrentList(const Algorithm *const pAlgorithm);
105
112 virtual StatusCode RenameList(const std::string &oldListName, const std::string &newListName);
113
120 virtual StatusCode CreateTemporaryListAndSetCurrent(const Algorithm *const pAlgorithm, std::string &temporaryListName);
121
127 virtual StatusCode RegisterAlgorithm(const Algorithm *const pAlgorithm);
128
135 virtual StatusCode ResetAlgorithmInfo(const Algorithm *const pAlgorithm, bool isAlgorithmFinished);
136
141
145 virtual StatusCode EraseAllContent();
146
151
159 virtual T *Modifiable(const T *const pT) const;
160
165 {
166 public:
167 std::string m_parentListName;
170 };
171
172 const std::string m_nullListName;
173 const Pandora *const m_pPandora;
174
175 typedef std::map<std::string, ObjectList *> NameToListMap;
176 typedef std::unordered_map<const Algorithm *, AlgorithmInfo> AlgorithmInfoMap;
177
180
181 std::string m_currentListName;
183};
184
185} // namespace pandora
186
187#endif // #ifndef PANDORA_MANAGER_H
Header file defining relevant internal typedefs, sort and string conversion functions.
Header file defining status codes and relevant preprocessor macros.
Algorithm class. Algorithm addresses are held only by the algorithm manager. They have a fully define...
Definition Algorithm.h:21
Manager class.
Definition Manager.h:27
unsigned int m_numberOfListsCreated
The number of lists created by the algorithm.
Definition Manager.h:169
virtual StatusCode ResetCurrentListToAlgorithmInputList(const Algorithm *const pAlgorithm)
Reset the current list to the algorithm input list.
Definition Manager.cc:102
std::string m_currentListName
The name of the current list.
Definition Manager.h:181
virtual T * Modifiable(const T *const pT) const
Access a modifiable object, when provided with address to const object.
Definition Manager.cc:288
virtual StatusCode RenameList(const std::string &oldListName, const std::string &newListName)
Rename a saved list, altering its saved name from a specified old list name to a specified new list n...
Definition Manager.cc:142
MANAGED_CONTAINER< const T * > ObjectList
Definition Manager.h:42
const Pandora *const m_pPandora
The associated pandora object.
Definition Manager.h:173
virtual StatusCode EraseAllContent()
Erase all manager content.
Definition Manager.cc:258
virtual StatusCode ResetAlgorithmInfo(const Algorithm *const pAlgorithm, bool isAlgorithmFinished)
Remove temporary lists and reset the current list to that when algorithm was initialized.
Definition Manager.cc:216
StringSet m_savedLists
The set of saved lists.
Definition Manager.h:182
NameToListMap m_nameToListMap
The name to list map.
Definition Manager.h:178
virtual ~Manager()
Destructor.
Definition Manager.cc:27
const std::string m_nullListName
The name of the default empty (NULL) list.
Definition Manager.h:172
std::string m_parentListName
The current list when algorithm was initialized.
Definition Manager.h:167
virtual StatusCode DropCurrentList(const Algorithm *const pAlgorithm)
Drop the current list, returning the current list to its default empty/null state.
Definition Manager.cc:134
std::map< std::string, ObjectList * > NameToListMap
Definition Manager.h:175
virtual StatusCode GetCurrentList(const ObjectList *&pObjectList, std::string &listName) const
Get the current list.
Definition Manager.cc:48
virtual StatusCode GetCurrentListName(std::string &listName) const
Get the current list name.
Definition Manager.cc:57
virtual StatusCode GetAlgorithmInputListName(const Algorithm *const pAlgorithm, std::string &listName) const
Get the algorithm track list name.
Definition Manager.cc:88
virtual StatusCode ReplaceCurrentAndAlgorithmInputLists(const Algorithm *const pAlgorithm, const std::string &listName)
Replace the current and algorithm input lists with a pre-existing list.
Definition Manager.cc:110
virtual StatusCode RegisterAlgorithm(const Algorithm *const pAlgorithm)
Register an algorithm with the manager.
Definition Manager.cc:198
virtual StatusCode CreateTemporaryListAndSetCurrent(const Algorithm *const pAlgorithm, std::string &temporaryListName)
Create a temporary list associated with a particular algorithm.
Definition Manager.cc:177
std::unordered_map< const Algorithm *, AlgorithmInfo > AlgorithmInfoMap
Definition Manager.h:176
virtual StatusCode ResetForNextEvent()
Reset the manager.
Definition Manager.cc:247
virtual StatusCode GetList(const std::string &listName, const ObjectList *&pObjectList) const
Get a list.
Definition Manager.cc:34
virtual StatusCode GetAlgorithmInputList(const Algorithm *const pAlgorithm, const ObjectList *&pObjectList, std::string &listName) const
Get the algorithm input list.
Definition Manager.cc:69
AlgorithmInfoMap m_algorithmInfoMap
The algorithm info map.
Definition Manager.h:179
StringSet m_temporaryListNames
The temporary list names.
Definition Manager.h:168
virtual StatusCode CreateInitialLists()
Create initial lists.
Definition Manager.cc:274
AlgorithmInfo class.
Definition Manager.h:165
Pandora class.
Definition Pandora.h:40
std::set< std::string > StringSet
StatusCode
The StatusCode enum.