2015-02-26 15:02:31 +00:00
|
|
|
|
|
|
|
#include <iostream>
|
|
|
|
|
2015-06-01 15:28:29 +00:00
|
|
|
#include "trick/Executive.hh"
|
|
|
|
#include "trick/exec_proto.h"
|
|
|
|
#include "trick/memorymanager_c_intf.h"
|
2015-02-26 15:02:31 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
@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 ;
|
|
|
|
|
2016-03-29 14:26:49 +00:00
|
|
|
/*
|
|
|
|
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.
|
|
|
|
*/
|
2015-02-26 15:02:31 +00:00
|
|
|
/* 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) ;
|
|
|
|
|
|
|
|
}
|