example rewritten into C++
authorMichal Voců <michal@ruk.cuni.cz>
Wed, 28 Apr 2010 14:41:37 +0000 (14:41 +0000)
committerMichal Voců <michal@ruk.cuni.cz>
Wed, 28 Apr 2010 14:41:37 +0000 (14:41 +0000)
org.glite.lb.doc/examples/cons_example3.cpp

index 0d42ab6..ee1b784 100644 (file)
@@ -53,7 +53,7 @@ static void usage(char *me)
 
 int main(int argc, char *argv[])
 {
-       string          server_s, jobid_s, user;
+       char            *server_s, *jobid_s, *user;
        int             opt, err = 0;
        glite::jobid::JobId   jobid;
        long            i;
@@ -71,7 +71,7 @@ int main(int argc, char *argv[])
                case '?': usage(argv[0]); return 1;
                }
        
-       if ( jobid_s.empty() ) { 
+       if ( !jobid_s ) { 
                cerr <<  "JobId not given\n"; return 1; 
        }
 
@@ -83,56 +83,30 @@ int main(int argc, char *argv[])
        /*end variables*/
 
        try {
+         
                /*context*/
-               jobid = glite::jobid::JobId(jobid_s);
-               
-               lb_server.setQueryServer(jobid.host(), jobid.port());
+               lb_server.setQueryServer(server_s, port);
                /*end context*/
 
                /*queryrec*/
-       jc[0].attr = EDG_WLL_QUERY_ATTR_USERTAG;
-       jc[0].op = EDG_WLL_QUERY_OP_EQUAL;
-       jc[0].attr_id.tag = "color";
-       jc[0].value.c = "red";
-       jc[1].attr = EDG_WLL_QUERY_ATTR_UNDEF;
-       ec[0].attr = EDG_WLL_QUERY_ATTR_USERTAG;
-       ec[0].op = EDG_WLL_QUERY_OP_EQUAL;
-       ec[0].attr_id.tag = "color";
-       ec[0].value.c = "green";
-       ec[1].attr = EDG_WLL_QUERY_ATTR_UNDEF;
-       /*end queryrec*/
-
-       /*query*/
-       err = edg_wll_QueryEvents(ctx, jc, ec, &eventsOut); 
-       /*end query*/
-
-       if ( err == E2BIG ) {
-               fprintf(stderr,"Warning: only limited result returned!\n");
-               return 0;
-       } else if (err) {
-               char    *et,*ed;
-               
-               edg_wll_Error(ctx,&et,&ed);
-               fprintf(stderr,"%s: edg_wll_QueryEvents(): %s (%s)\n",argv[0],et,ed);
-
-               free(et); free(ed);
-       }
+               jc.push_back(QueryRecord("color", QueryRecord::EQUAL, "red"));
+               ec.push_back(QueryRecord("color", QueryRecord::EQUAL, "green"));
+               /*end queryrec*/
 
-       if ( err == ENOENT ) return err;
+               /*query*/
+               events_out = lb_server.queryEvents(jc,ec);
+               /*end query*/
 
-       /*printevents*/
-       for (i = 0; eventsOut && (eventsOut[i].type); i++ ) {
-               //printf("jobId : %s\n", edg_wlc_JobIdUnparse(eventsOut[i].jobId));
-               printf("event : %s\n\n", edg_wll_EventToString(eventsOut[i].type));
-       }
-       /*end printevents*/
 
-       if ( eventsOut ) {
-               for (i=0; &(eventsOut[i]); i++) edg_wll_FreeEvent(&(eventsOut[i]));
-               free(eventsOut);
-       }
+               /*printevents*/
+               for(i = 0; i < eventsOut.size(); i++) {
+                       dumpEvent(&(eventsOut[i]));
+               }
+               /*end printevents*/
 
-       edg_wll_FreeContext(ctx);
+       } catch(std::exception e) {
+               cerr << e.what() << endl;
+       }
 
-       return err;
+       return 0;
 }