Fix/remove STL checkpoint docs, closes #1087

This commit is contained in:
Fennell, Scott P 263712616 2022-02-07 11:27:17 -06:00
parent 6b793504f2
commit 017a5aecf5
2 changed files with 1 additions and 87 deletions

View File

@ -411,58 +411,6 @@ Trick attempts to process user defined templates. Simple templates are handled.
STLs may be used in models. However, STL variables are not data recordable, they are not visible in the variable server, nor are they directly accessible in the input file. Some STLs are automatically checkpointed: array, vector, list, deque, set, multiset map, multimap, stack, queue, priority_queue, pair.
```C++
// A class with STLs to be checkpointed. 3 methods are defined to help Trick checkpoint the STLs
class STLCheckpoint {
public:
std::map< int , double > my_double_map ;
std::vector < double > my_double_vec ;
int checkpoint(string object_name);
int post_checkpoint(string object_name);
int restart(string object_name);
} ;
// The checkpoint job converts STLs to array data.
int STLCheckpoint::checkpoint(string object_name) {
/* checkpoint_stl is a templated function that takes an STL,
a sim_object name, and a variable name (usually the same
as the STL name) as arguments. It outputs memory_manager
arrays named object_name.<variable_name> that contain the
data in the STLs.
*/
checkpoint_stl(my_double_map, object_name , “my_double_map”) ;
checkpoint_stl(my_double_vec , object_name ,“my_double_vec”) ;
}
// The post_checkpoint job frees memory allocated in checkpoint job
int STLCheckpoint::post_checkpoint(string object_name) {
//delete_stl takes the same arguments as checkpoint_stl
checkpoint_stl(my_double_map, object_name , “my_double_map”) ;
checkpoint_stl(my_double_vec , object_name ,“my_double_vec”) ;
}
// The restart job restores STLs from a checkpoint file.
int STLCheckpoint::restart(string object_name) {
//restore_stl takes the same arguments as checkpoint_stl
restore_stl(my_double_map, object_name , “my_double_map”) ;
resotre_stl(my_double_vec , object_name ,“my_double_vec”) ;
}
```
Calls to checkpoint the STLs in the S_define.
```C++
class theSimObject : public Trick::SimObject {
public:
STLCheckpoint stls ;
theSimObject() {
/*
"name" is the string that is the sim_object
instance name. It is present in all sim objects
and automatically set by Trick.
*/
("checkpoint") stls.checkpoint(name) ;
("post_checkpoint") stls.post_checkpoint(name) ;
("restart") stls.restart(name) ;
} ;
```
##### Noncopyable Objects

View File

@ -1,39 +1,5 @@
Trick provides checkpointable versions of std::STLs.
Trick checkpoints the following STL types: array, vector, list, deque, set, multiset map, multimap, stack, queue, priority_queue, pair.
The list of Trick::STLs are
- deque
- list
- map
- multimap
- multiset
- pair
- priority_queue
- queue
- set
- stack
- vector
The Trick STLs require a C++11 compliant compiler. As of this writing
gcc 4.4+ on Linux systems meets these requirements using the "-std=c++0x"
command line argument.
To use Trick STLs include the proper header file from sim_services/STL/include
and use Trick::STL_name instead of std::STL_name. Trick STLs must be public,
or the proper init_attr friends must be present for checkpointing to work. A
Trick comment with "**" has not effect, Trick STLs will always be checkpointed.
If checkpointing is not desired use the std::STL_name instead.
Example:
```
#include "sim_services/STL/include/trick_vector.hh"
class A {
public:
Trick::vector< int > my_vector ; // -- trick_comment
}
```
[Continue to Threads](Threads)