GetFEM
5.4.2
|
Stores interdependent getfem objects. More...
#include "dal_config.h"
#include "getfem_omp.h"
#include <algorithm>
#include "dal_singleton.h"
#include <set>
#include <list>
#include "getfem/getfem_arch_config.h"
#include <atomic>
Go to the source code of this file.
Classes | |
class | dal::static_stored_object |
base class for static stored objects More... | |
struct | dal::enr_static_stored_object |
Pointer to an object with the dependencies. More... | |
struct | dal::enr_static_stored_object_key |
Pointer to a key with a coherent order. More... | |
struct | dal::stored_object_tab |
Table of stored objects. More... | |
Namespaces | |
dal | |
Dynamic Array Library. | |
Functions | |
pstatic_stored_object | dal::search_stored_object (pstatic_stored_object_key k) |
Gives a pointer to an object from a key pointer. | |
bool | dal::exists_stored_object (pstatic_stored_object o) |
Test if an object is stored. | |
void | dal::add_dependency (pstatic_stored_object o1, pstatic_stored_object o2) |
Add a dependency, object o1 will depend on object o2. | |
bool | dal::del_dependency (pstatic_stored_object o1, pstatic_stored_object o2) |
remove a dependency. More... | |
void | dal::add_stored_object (pstatic_stored_object_key k, pstatic_stored_object o, permanence perm=STANDARD_STATIC_OBJECT) |
Add an object with two optional dependencies. | |
void | dal::del_stored_object (const pstatic_stored_object &o, bool ignore_unstored=false) |
Delete an object and the object which depend on it. | |
void | dal::del_stored_objects (int perm) |
Delete all the object whose permanence is greater or equal to perm. | |
void | dal::list_stored_objects (std::ostream &ost) |
Show a list of stored objects (for debugging purpose). | |
size_t | dal::nb_stored_objects (void) |
Return the number of stored objects (for debugging purpose). | |
void | dal::del_stored_objects (std::list< pstatic_stored_object > &to_delete, bool ignore_unstored) |
Delete a list of objects and their dependencies. | |
void | dal::test_stored_objects (void) |
Test the validity of the whole global storage. | |
template<typename OBJECT_TYPE > | |
void | dal::delete_specific_type_stored_objects (bool all_threads=false) |
delete all the specific type of stored objects | |
Stores interdependent getfem objects.
A type of object to be stored should derive from dal::static_stored_object and a key should inherit from static_stored_object_key with an overloaded "compare" method.
To store a new object, you have to test if the object is not already stored and then call dal::add_stored_object:
You can add a dependency of your new object with
and then your object will be automatically deleted if the second object is deleted. The dependency can be added within the add_stored_object call:
std::shared_ptr are used.
Definition in file dal_static_stored_objects.h.