#include #define SAGA_CHECK_EQUAL(x,y) std::cout << "check: " << x << " == " << y << std::endl; #define cmd "/bin/sleep 10" int main (int argc, char** argv) { try { saga::job::service js ("fork://localhost"); saga::job::ostream in; saga::job::istream out, err; std::cout << "running " << cmd << std::endl; saga::job::description jd; jd.set_attribute ("Executable", "/bin/date"); saga::job::job job = js.create_job (jd); job.run (); SAGA_CHECK_EQUAL (job.get_state (), saga::job::Running); std::cout << " ---------------------------------" << std::endl; std::string jobid = job.get_job_id (); std::cout << " ---------------------------------" << std::endl; return 0; // reconnect to the running applications saga::job::job job1 = js.get_job (jobid); std::cout << "state: " << job1.get_state () << " - " << saga::job::Running << std::endl; SAGA_CHECK_EQUAL (job1.get_state (), saga::job::Running); SAGA_CHECK_EQUAL (jobid, job1.get_job_id ()); in << "" << std::endl; job1.wait(); SAGA_CHECK_EQUAL (job1.get_state (), saga::job::Done); job.wait(); SAGA_CHECK_EQUAL (job.get_state (), saga::job::Done); } catch ( const saga::exception & e ) { std::cerr << "exception: " << e.what () << std::endl; } return 0; }