3 #ifndef __ARC_BROKER_H__
4 #define __ARC_BROKER_H__
11 #include <arc/Utils.h>
12 #include <arc/compute/EntityRetriever.h>
13 #include <arc/compute/JobDescription.h>
14 #include <arc/compute/BrokerPlugin.h>
18 class ExecutionTarget;
166 bool isValid(
bool alsoCheckJobDescription =
true)
const;
177 std::string proxyIssuerCA;
199 : b(&b), rejectEndpoints(rejectEndpoints), current(targets.first.begin()) {}
202 : b(&b), rejectEndpoints(rejectEndpoints), current(targets.first.begin()) {
set(j); }
205 : b(&b), rejectEndpoints(rejectEndpoints), current(targets.first.begin()) {
addEntities(csList); }
208 : b(&b), rejectEndpoints(rejectEndpoints), current(targets.first.begin()) {
set(j);
addEntities(csList); }
212 void addEntity(
const ExecutionTarget& et);
214 void addEntity(
const ComputingServiceType& cs);
216 void addEntities(
const std::list<ComputingServiceType>&);
219 void reset() { current = targets.first.begin(); }
223 bool endOfList()
const {
return current == targets.first.end(); }
238 void clear() { targets.first.clear(); targets.second.clear(); }
248 void set(
const Broker& newBroker) { b = &newBroker; sort(); }
252 void setRejectEndpoints(
const std::list<URL>& newRejectEndpoints) { rejectEndpoints = newRejectEndpoints; }
260 std::list<URL> rejectEndpoints;
262 std::pair< std::list<ExecutionTarget>, std::list<ExecutionTarget> > targets;
263 std::list<ExecutionTarget>::iterator current;
270 #endif // __ARC_BROKER_H__