adopt to arc1.0.1
[gp-arc-client-c.git] / ext / arc_get.cpp
index 8d17a29..bfcdff7 100644 (file)
@@ -3,7 +3,6 @@
  *  arcclientc
  *
  *  Created by Tamas Jung on 10/25/10.
- *  Copyright 2010 Apple. All rights reserved.
  *
  */
 
 
 // -*- indent-tabs-mode: nil -*-
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
 
+#include "logger.h"
 #include <iostream>
 #include <list>
 #include <string>
 #include "arc_libs.h"
 
 
-get_result_t* arc_get(int argc, char **argv) {
+int arc_get(int argc, char **argv) {
        
        
-       get_result_t* result = (get_result_t*)malloc(sizeof(get_result_t));
-       if (!result) {
-               return NULL;//TBD: throw sth?
-       }
-       result->message = NULL;
-       result->get = NULL;
+
        
        Arc::OptionParser options(istring("[job ...]"),
                                                          istring("The arcget command is used for "
@@ -89,18 +81,16 @@ get_result_t* arc_get(int argc, char **argv) {
                
        Arc::UserConfig usercfg(conffile, joblist);
        if (!usercfg) {
-               result -> message = new_str("Failed configuration initialization");
-               result -> get = 1;
-               return result;
+               logger.msg(Arc::ERROR, "Failed configuration initialization");
+               return 1;
        }
                
        if (timeout > 0)
        usercfg.Timeout(timeout);
                
        if (jobs.empty() && clusters.empty()) {
-               result -> message = new_str("No jobs given");
-               result -> get = 1;
-               return result;
+               logger.msg(Arc::ERROR, "No jobs given");
+               return 1;
        }
        
        if (!jobs.empty())
@@ -113,24 +103,22 @@ get_result_t* arc_get(int argc, char **argv) {
        
        Arc::JobSupervisor jobmaster(usercfg, jobs);
        if (!jobmaster.JobsFound()) {
-               result -> message = new_str("No jobs");
-               result -> get = 0;
-               return result;
+               logger.msg(Arc::ERROR, "No jobs");
+               return 1;
        }
        std::list<Arc::JobController*> jobcont = jobmaster.GetJobControllers();
        
        // If the user specified a joblist on the command line joblist equals
        // usercfg.JobListFile(). If not use the default, ie. usercfg.JobListFile().
        if (jobcont.empty()) {
-               result -> message = new_str("No job controller plugins loaded");
-               result -> get = 1;
-               return result;
+               logger.msg(Arc::ERROR, "No job controller plugins loaded");
+               return 1;
        }
-       
+  int result = 0;
        for (std::list<Arc::JobController*>::iterator it = jobcont.begin();
                 it != jobcont.end(); it++){
-               if (!(*it)->Get(status, downloaddir, keep)){
-                       result -> get = 1;
+               if (!(*it)->Get(status, downloaddir, keep, false, false)){
+                       result = 1;
                }
        }