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;
175 bool isValid(
bool alsoCheckJobDescription =
true)
const;
186 std::string proxyIssuerCA;
208 : b(&b), rejectEndpoints(rejectEndpoints), current(targets.first.begin()) {}
211 : b(&b), rejectEndpoints(rejectEndpoints), current(targets.first.begin()) {
set(j); }
214 : b(&b), rejectEndpoints(rejectEndpoints), current(targets.first.begin()) {
addEntities(csList); }
217 : b(&b), rejectEndpoints(rejectEndpoints), current(targets.first.begin()) {
set(j);
addEntities(csList); }
221 void addEntity(
const ExecutionTarget& et);
223 void addEntity(
const ComputingServiceType& cs);
225 void addEntities(
const std::list<ComputingServiceType>&);
228 void reset() { current = targets.first.begin(); }
232 bool endOfList()
const {
return current == targets.first.end(); }
247 void clear() { targets.first.clear(); targets.second.clear(); }
257 void set(
const Broker& newBroker) { b = &newBroker; sort(); }
261 void setRejectEndpoints(
const std::list<URL>& newRejectEndpoints) { rejectEndpoints = newRejectEndpoints; }
269 std::list<URL> rejectEndpoints;
271 std::pair< std::list<ExecutionTarget>, std::list<ExecutionTarget> > targets;
272 std::list<ExecutionTarget>::iterator current;
279 #endif // __ARC_BROKER_H__