trick/trick_source/sim_services/Executive/Executive_get_job.cpp

30 lines
891 B
C++
Raw Normal View History

2015-02-26 15:02:31 +00:00
#include <iostream>
#include "trick/Executive.hh"
2015-02-26 15:02:31 +00:00
Trick::JobData * Trick::Executive::get_job(std::string job_name, unsigned int j_instance) {
unsigned int ii ;
std::multimap<std::string , Trick::JobData *>::iterator it ;
std::pair<std::multimap<std::string , Trick::JobData *>::iterator , std::multimap<std::string , Trick::JobData *>::iterator> range ;
/** @par Detailed Design */
/** @li Find all jobs that have the target name and hold them in a list */
range = all_jobs.equal_range(job_name) ;
/** @li Move to the j_instance-th item in the list */
for ( it = range.first , ii = 1 ; (it != range.second) && (ii < j_instance) ; it++ , ii++ ) ;
/** @li If the j_instance-th item doesn't exist return NULL */
if ( it == range.second ) {
return(NULL) ;
}
/** @li return the j_instance-th item */
return((*it).second) ;
}