00001 #ifndef DATADELIVERYREMOTECOMM_H_ 00002 #define DATADELIVERYREMOTECOMM_H_ 00003 00004 #include <arc/XMLNode.h> 00005 #include <arc/client/ClientInterface.h> 00006 00007 #include "DataDeliveryComm.h" 00008 00009 namespace DataStaging { 00010 00012 class DataDeliveryRemoteComm : public DataDeliveryComm { 00013 public: 00014 DataDeliveryRemoteComm(DTR_ptr dtr, const TransferParameters& params); 00015 virtual ~DataDeliveryRemoteComm(); 00016 00018 virtual void PullStatus(); 00019 00021 static bool CheckComm(DTR_ptr dtr, std::vector<std::string>& allowed_dirs); 00022 00024 virtual operator bool() const { return valid; }; 00026 virtual bool operator!() const { return !valid; }; 00027 00028 private: 00030 Arc::ClientSOAP* client; 00032 std::string dtr_full_id; 00034 bool valid; 00036 static Arc::Logger logger; 00037 00039 void CancelDTR(); 00040 00043 void FillStatus(const Arc::XMLNode& node = Arc::XMLNode()); 00044 00046 bool SetupDelegation(Arc::XMLNode& op, const Arc::UserConfig& usercfg); 00047 00048 }; 00049 00050 } // namespace DataStaging 00051 00052 #endif /* DATADELIVERYREMOTECOMM_H_ */