8#ifndef PANDORA_ALGORITHM_OBJECT_MANAGER
9#define PANDORA_ALGORITHM_OBJECT_MANAGER 1
57 std::string &temporaryListName,
const ObjectList &objectsToMove);
Header file for the manager class.
Algorithm class. Algorithm addresses are held only by the algorithm manager. They have a fully define...
AlgorithmObjectManager class.
virtual StatusCode ResetCurrentListToAlgorithmInputList(const Algorithm *const pAlgorithm)
Reset the current list to the algorithm input list.
virtual ~AlgorithmObjectManager()
Destructor.
bool m_canMakeNewObjects
Whether the manager is allowed to make new objects when requested by algorithms.
virtual StatusCode GetResetDeletionObjects(const Algorithm *const pAlgorithm, ObjectList &objectList) const
Get the list of objects that will be deleted when the algorithm info is reset.
virtual StatusCode EraseAllContent()
Erase all manager content.
virtual StatusCode CreateTemporaryListAndSetCurrent(const Algorithm *const pAlgorithm, std::string &temporaryListName)
Make a temporary list and set it to be the current list.
virtual StatusCode SaveObjects(const std::string &targetListName, const std::string &sourceListName)
Save a list of objects.
virtual StatusCode DropCurrentList(const Algorithm *const pAlgorithm)
Drop the current list, returning the current list to its default empty/null state.
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...
virtual StatusCode DeleteObjects(const ObjectList &objectList, const std::string &listName)
Delete a list of objects from a specified list.
virtual StatusCode DeleteObject(const T *const pT, const std::string &listName)
Delete an object from a specified list.
virtual StatusCode TemporarilyReplaceCurrentList(const std::string &listName)
Temporarily replace the current list with another list, which may only be a temporary list....
virtual StatusCode ResetAlgorithmInfo(const Algorithm *const pAlgorithm, bool isAlgorithmFinished)
Remove temporary lists and reset the current cluster list to that when algorithm was initialized.
Manager< T >::ObjectList ObjectList
virtual StatusCode MoveObjectsToTemporaryListAndSetCurrent(const Algorithm *const pAlgorithm, const std::string &originalListName, std::string &temporaryListName, const ObjectList &objectsToMove)
Move objects to a new temporary object list and set it to be the current object list.
virtual StatusCode DeleteTemporaryObjects(const Algorithm *const pAlgorithm, const std::string &temporaryListName)
Delete the contents of a temporary list.
virtual StatusCode MoveObjectsBetweenLists(const std::string &targetListName, const std::string &sourceListName, const ObjectList *pObjectSubset=nullptr)
Move (a subset of) objects between two lists.
virtual StatusCode ReplaceCurrentAndAlgorithmInputLists(const Algorithm *const pAlgorithm, const std::string &listName)
Replace the current and algorithm input lists with a pre-existing list.
MANAGED_CONTAINER< const T * > ObjectList
StatusCode
The StatusCode enum.