root/saga/trunk/examples/misc/aws.cpp

Revision 3182, 1.6 kB (checked in by amerzky, 1 year ago)

updates to the aws toy example
A

Line 
1 //  Copyright (c) 2005-2007 Andre Merzky <andre@merzky.net>
2 //
3 //  Distributed under the Boost Software License, Version 1.0.
4 //  (See accompanying file LICENSE file or copy at
5 //  http://www.boost.org/LICENSE_1_0.txt)
6
7 #include <saga/saga.hpp>
8
9 #define COUNT 100
10
11 void print_io (saga::job::job j)
12 {
13   saga::job::istream out = j.get_stdout ();
14
15   while ( true )
16   {
17     char buffer[255];
18
19     // get stdout
20     out.read (buffer, sizeof (buffer));
21
22     if ( out.gcount () > 0 )
23     {
24       std::cout << std::string (buffer, out.gcount ());
25     }
26
27     if ( out.fail () )
28     {
29       break;
30     }
31   }
32
33   return;
34 }
35
36 ///////////////////////////////////////////////////////////////////////////////
37 int main (int argc, char* argv[])
38 {
39
40   // job description is shared by all sessions
41   saga::job::description jd;
42
43   jd.set_attribute ("Executable", "hostname");
44   jd.set_attribute ("Interactive", "True");
45
46
47   // 3 sessions
48   saga::session s1;
49   saga::session s2;
50   saga::session s3;
51
52
53   // 3 contexts
54   saga::context c1 ("nimbus");
55   saga::context c2 ("eucalyptus");
56   saga::context c3 ("ec2");
57
58   c1.set_defaults ();
59   c2.set_defaults ();
60   c3.set_defaults ();
61
62
63   // one context per session
64   s1.add_context (c1);
65   s2.add_context (c2);
66   s3.add_context (c3);
67
68
69   // one job service per session
70   saga::job::service js1 (s1);
71   saga::job::service js2 (s2);
72   saga::job::service js3 (s3);
73
74
75   // run 1 job per job service
76
77   saga::job::job j1 = js1.create_job (jd);
78   saga::job::job j2 = js2.create_job (jd);
79   saga::job::job j3 = js3.create_job (jd);
80
81   j1.run ();   print_io (j1);
82   j2.run ();   print_io (j2);
83   j3.run ();   print_io (j3);
84
85   return 0;
86 }
87
Note: See TracBrowser for help on using the browser.