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;
 
   84     bool isValid(
bool alsoCheckJobDescription = 
true) 
const;
 
   95     std::string proxyIssuerCA;
 
  117       : b(&b), rejectEndpoints(rejectEndpoints), current(targets.first.begin()) {}
 
  120       : b(&b), rejectEndpoints(rejectEndpoints), current(targets.first.begin()) { 
set(j); }
 
  123       : b(&b), rejectEndpoints(rejectEndpoints), current(targets.first.begin()) { 
addEntities(csList); }
 
  126       : b(&b), rejectEndpoints(rejectEndpoints), current(targets.first.begin()) { 
set(j); 
addEntities(csList); }
 
  130     void addEntity(
const ExecutionTarget& et);
 
  132     void addEntity(
const ComputingServiceType& cs);
 
  134     void addEntities(
const std::list<ComputingServiceType>&);
 
  137     void reset() { current = targets.first.begin(); }
 
  141     bool endOfList()
 const { 
return current == targets.first.end(); }
 
  156     void clear() { targets.first.clear(); targets.second.clear(); }
 
  166     void set(
const Broker& newBroker) { b = &newBroker; sort(); }
 
  170     void setRejectEndpoints(
const std::list<URL>& newRejectEndpoints) { rejectEndpoints = newRejectEndpoints; }
 
  178     std::list<URL> rejectEndpoints;
 
  180     std::pair< std::list<ExecutionTarget>, std::list<ExecutionTarget> > targets;
 
  181     std::list<ExecutionTarget>::iterator current;
 
  188 #endif // __ARC_BROKER_H__