int CondorQ::fetchQueueFromHostAndProcess ( const char *host, StringList &attrs, int fetch_opts, int match_limit, condor_q_process_func process_func, void * process_func_data, int useFastPath, CondorError* errstack, ClassAd ** psummary_ad) { Qmgr_connection *qmgr; ExprTree *tree; char *constraint; int result; // make the query ad if ((result = query.makeQuery (tree)) != Q_OK) return result; constraint = strdup( ExprTreeToString( tree ) ); delete tree; if (useFastPath > 1) { int result = fetchQueueFromHostAndProcessV2(host, constraint, attrs, fetch_opts, match_limit, process_func, process_func_data, connect_timeout, useFastPath, errstack, psummary_ad); free( constraint); return result; } if (fetch_opts != fetch_Jobs) { free( constraint ); return Q_UNSUPPORTED_OPTION_ERROR; } /* connect to the Q manager. use a timeout of 20 seconds, and a read-only connection. why 20 seconds? because careful research by Derek has shown that whenever one needs a periodic time value, 20 is always optimal. :^). */ init(); // needed to get default connect_timeout if( !(qmgr = ConnectQ( host, connect_timeout, true, errstack)) ) { free( constraint ); return Q_SCHEDD_COMMUNICATION_ERROR; } // get the ads and filter them result = getFilterAndProcessAds (constraint, attrs, match_limit, process_func, process_func_data, useFastPath); DisconnectQ (qmgr); free( constraint ); return result; }
int CondorQ::fetchQueueFromHostAndProcess ( const char *host, StringList &attrs, process_function process_func, bool useFastPath, CondorError* errstack) { Qmgr_connection *qmgr; ExprTree *tree; char *constraint; int result; // make the query ad if ((result = query.makeQuery (tree)) != Q_OK) return result; constraint = strdup( ExprTreeToString( tree ) ); delete tree; /* connect to the Q manager. use a timeout of 20 seconds, and a read-only connection. why 20 seconds? because careful research by Derek has shown that whenever one needs a periodic time value, 20 is always optimal. :^). */ init(); // needed to get default connect_timeout if( !(qmgr = ConnectQ( host, connect_timeout, true, errstack)) ) { free( constraint ); return Q_SCHEDD_COMMUNICATION_ERROR; } // get the ads and filter them result = getFilterAndProcessAds (constraint, attrs, process_func, useFastPath); DisconnectQ (qmgr); free( constraint ); return result; }