trick/trick_source/sim_services/Executive/Executive_checkpoint.cpp
Alex Lin 46aec08b80 Add direct STL checkpointing
Initial checkin of STL checkpointing.  This checkin only covers the sequential
STLs, vector, list, deque, set, and multiset.  This checkin does include the
changes in Trick header files to include/exclude our STLs properly to make a
restartable checkpoint.

refs #206
2016-03-29 09:26:49 -05:00

36 lines
1005 B
C++

#include <iostream>
#include "trick/Executive.hh"
#include "trick/exec_proto.h"
#include "trick/memorymanager_c_intf.h"
/**
@details
-# Save the number of jobs in the scheduler
-# Copy all of the job information in a checkpointable array
*/
int Trick::Executive::checkpoint() {
unsigned int ii ;
/*
The all_jobs_vector contains memory that is not known to the memory manager. We need to
copy the information into memory that is declared to the memory manager.
*/
/* save the number of jobs in the scheduler */
num_all_jobs = all_jobs_vector.size() ;
/* copy all of the job information in a checkpointable array */
if ( num_all_jobs > 0 ) {
all_jobs_for_checkpoint = (Trick::JobData *)TMM_declare_var( TRICK_STRUCTURED, "Trick::JobData",
0 , "all_jobs" , 1 , (int *)&num_all_jobs) ;
for ( ii = 0 ; ii < num_all_jobs ; ii++ ) {
all_jobs_for_checkpoint[ii] = *(all_jobs_vector[ii]) ;
}
}
return(0) ;
}