1 #ifndef DATA_DELIVERY_COMM_H_ 2 #define DATA_DELIVERY_COMM_H_ 8 class DataDeliveryCommHandler;
55 unsigned long long int size;
114 static bool CheckComm(
DTR_ptr dtr, std::vector<std::string>& allowed_dirs, std::string& load_avg);
120 virtual operator bool()
const = 0;
134 static void func(
void* arg);
135 std::list<DataDeliveryComm*> items_;
155 #endif // DATA_DELIVERY_COMM_H_ void Add(DataDeliveryComm *item)
Add a new DataDeliveryComm instance to the handler.
DataDeliveryCommHandler * handler_
Pointer to singleton handler of all DataDeliveryComm objects.
Definition: DataDeliveryComm.h:73
time_t timestamp
Time when information was generated (filled externally)
Definition: DataDeliveryComm.h:47
unsigned long long int transfer_time
Time in ns to complete transfer (0 if not completed)
Definition: DataDeliveryComm.h:58
DTRStatusType
Possible state values.
Definition: DTRStatus.h:21
DTRErrorStatus::DTRErrorLocation error_location
Where error happened.
Definition: DataDeliveryComm.h:50
Status status_buf_
Latest status of transfer is read into this buffer.
Definition: DataDeliveryComm.h:67
Communication going on smoothly.
Definition: DataDeliveryComm.h:35
DTRErrorStatus::DTRErrorStatusType error
Error type.
Definition: DataDeliveryComm.h:49
A class for storing and manipulating times.
Definition: DateTime.h:125
virtual ~DataDeliveryComm()
Destroy object. This stops any ongoing transfer and cleans up resources.
Definition: DataDeliveryComm.h:101
Status status_
Current status of transfer.
Definition: DataDeliveryComm.h:65
unsigned int status_pos_
Reading position of Status buffer.
Definition: DataDeliveryComm.h:69
static DataDeliveryCommHandler * getInstance()
Get the singleton instance of the handler.
virtual bool operator!() const =0
Returns true if transfer is currently not active.
Represents limits and properties of a DTR transfer. These generally apply to all DTRs.
Definition: DTR.h:91
char error_desc[1024]
Error description.
Definition: DataDeliveryComm.h:51
Status GetStatus() const
Obtain status of transfer.
Communication experienced timeout.
Definition: DataDeliveryComm.h:36
DTRErrorStatusType
A list of error types.
Definition: DTRStatus.h:213
Arc::Time start_
Time transfer was started.
Definition: DataDeliveryComm.h:77
DataStaging contains all components for data transfer scheduling and execution.
Definition: DataDelivery.h:12
unsigned int streams
Number of transfer streams active.
Definition: DataDeliveryComm.h:52
DTRStatus::DTRStatusType status
Generic status.
Definition: DataDeliveryComm.h:48
virtual void PullStatus()=0
Check for new state and fill state accordingly.
std::string GetError() const
Get explanation of error.
Definition: DataDeliveryComm.h:117
Transfer exited. Mostly same as CommClosed but exit detected before pipe closed.
Definition: DataDeliveryComm.h:38
TransferParameters transfer_params
Transfer limits.
Definition: DataDeliveryComm.h:75
Plain C struct to pass information from executing process back to main thread.
Definition: DataDeliveryComm.h:45
char checksum[128]
Calculated checksum.
Definition: DataDeliveryComm.h:57
CommStatusType
Communication status with transfer.
Definition: DataDeliveryComm.h:33
Initializing/starting transfer, rest of information not valid.
Definition: DataDeliveryComm.h:34
DTRErrorLocation
Describes where the error occurred.
Definition: DTRStatus.h:247
static DataDeliveryComm * CreateInstance(DTR_ptr dtr, const TransferParameters ¶ms)
Factory method to get DataDeliveryComm instance.
DTRLogger logger_
Logger object. Pointer to DTR's Logger.
Definition: DataDeliveryComm.h:79
unsigned int speed
Current transfer speed in bytes/sec during last ~minute.
Definition: DataDeliveryComm.h:56
Glib::Mutex lock_
Lock to protect access to status.
Definition: DataDeliveryComm.h:71
void Remove(DataDeliveryComm *item)
Remove a DataDeliveryComm instance from the handler.
This class provides an abstract interface for the Delivery layer.
Definition: DataDeliveryComm.h:27
Definition: DataDeliveryComm.h:39
unsigned long long int offset
Last position to which file has no missing pieces.
Definition: DataDeliveryComm.h:54
DataDeliveryComm(DTR_ptr dtr, const TransferParameters ¶ms)
Start transfer with parameters taken from DTR and supplied transfer limits.
unsigned long long int size
File size as obtained by protocol.
Definition: DataDeliveryComm.h:55
CommStatusType commstatus
Communication state (filled by main thread)
Definition: DataDeliveryComm.h:46
unsigned long long int transferred
Number of bytes transferred.
Definition: DataDeliveryComm.h:53
static bool CheckComm(DTR_ptr dtr, std::vector< std::string > &allowed_dirs, std::string &load_avg)
Check the delivery method is available. Calls CheckComm of the appropriate subclass.
Communication channel was closed.
Definition: DataDeliveryComm.h:37
Singleton class handling all active DataDeliveryComm objects.
Definition: DataDeliveryComm.h:130