DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::snbmodules::TransferMetadata Class Reference

#include <transfer_metadata.hpp>

Inheritance diagram for dunedaq::snbmodules::TransferMetadata:
[legend]
Collaboration diagram for dunedaq::snbmodules::TransferMetadata:
[legend]

Public Member Functions

virtual std::string export_to_string_partial (bool force_all)
 Export only the modified fields to a string.
 
std::string export_to_string () override
 Export metadata to string (json format)
 
void from_string (const std::string &) override
 Import metadata from string (json format)
 
void generate_metadata_file (std::filesystem::path dest) override
 Generaete metadata file to dest.
 
void load_metadata_from_meta_file (std::filesystem::path src) override
 Load metadata file from src.
 
bool operator== (MetadataAbstract const &other) const override
 Operator ==.
 
bool operator< (MetadataAbstract const &other) const override
 Operator < overload.
 
 TransferMetadata (const std::filesystem::path &file_path, uint64_t bytes_size, const IPFormat &src, const std::string &hash="", const IPFormat &dest=IPFormat(), const std::string &group_id="", uint64_t bytes_transferred=0, status_type::e_status status=status_type::e_status::WAITING)
 Constructor.
 
 TransferMetadata (const std::filesystem::path &src, bool is_path=true)
 Load from file constructor.
 
virtual ~TransferMetadata ()
 
void set_file_path (const std::filesystem::path &file_path)
 
void set_group_id (std::string group_id)
 
void set_src (const IPFormat &source)
 
void set_dest (const IPFormat &dest)
 
void set_hash (std::string hash)
 
void set_size (uint64_t size)
 
void set_bytes_transferred (uint64_t bytes_transferred)
 
void set_progress (int purcent)
 
void set_status (status_type::e_status status)
 
void set_magnet_link (std::string magnet_link)
 
void set_error_code (std::string error_code)
 
void set_transmission_speed (int32_t transmission_speed)
 
void set_duration (int64_t duration)
 
void set_start_time (int64_t start_time)
 
void set_end_time (int64_t end_time)
 
std::filesystem::path get_file_path () const
 
std::string get_file_name () const
 
std::string get_hash () const
 
IPFormat get_src () const
 
IPFormat get_dest () const
 
uint64_t get_size () const
 
uint64_t get_bytes_transferred () const
 
status_type::e_status get_status () const
 
std::string get_magnet_link () const
 
std::string get_group_id () const
 
int get_progress () const
 
std::string get_error_code () const
 
int32_t get_transmission_speed () const
 
int64_t get_total_duration_ms () const
 
int64_t get_start_time () const
 
int64_t get_end_time () const
 
std::string get_start_time_str () const
 
std::string get_end_time_str () const
 
- Public Member Functions inherited from dunedaq::snbmodules::MetadataAbstract
virtual ~MetadataAbstract ()=default
 

Static Public Attributes

static const std::string m_file_extension = ".tmetadata"
 

Private Attributes

std::filesystem::path m_file_path = ""
 Path of the file on the src filesystem.
 
std::string m_hash = ""
 TODO : Hash of the file sha1.
 
uint64_t m_bytes_size = 0
 Total size of the file in bytes.
 
uint64_t m_bytes_transferred = 0
 Number of bytes transferred or received.
 
int32_t m_transmission_speed = 0
 Transmission speed in bytes/s.
 
status_type::e_status m_status = status_type::e_status::WAITING
 Status of the file transfer.
 
IPFormat m_src = IPFormat()
 Source of the file transfer.
 
IPFormat m_dest = IPFormat()
 Destination of the file transfer, not always initialized.
 
std::string m_magnet_link = ""
 Magnet link of the file only for bit torrent.
 
std::string m_group_id = ""
 Group id of the file, used to group files together.
 
std::string m_error_code = ""
 show the error exception in case of error
 
int64_t m_start_time = 0
 Start time of the transfer, 0 if not started, reset if resumed.
 
int64_t m_end_time = 0
 End time of the transfer, 0 if not finished.
 
int64_t m_duration = 0
 Duration of the transfer.
 
std::map< std::string, boolm_modified_fields
 Vector of modified fields in order : to send only the modified fields.
 

Detailed Description

Definition at line 28 of file transfer_metadata.hpp.

Constructor & Destructor Documentation

◆ TransferMetadata() [1/2]

dunedaq::snbmodules::TransferMetadata::TransferMetadata ( const std::filesystem::path & file_path,
uint64_t bytes_size,
const IPFormat & src,
const std::string & hash = "",
const IPFormat & dest = IPFormat(),
const std::string & group_id = "",
uint64_t bytes_transferred = 0,
status_type::e_status status = status_type::e_status::WAITING )
inline

Constructor.

Parameters
file_path
bytes_size
hash
src
dest
bytes_transferred
status

Definition at line 70 of file transfer_metadata.hpp.

78 : m_hash(hash)
79 , m_bytes_size(bytes_size)
80 , m_bytes_transferred(bytes_transferred)
81 , m_status(status)
82 , m_src(src)
83 , m_dest(dest)
84 , m_group_id(group_id)
85 , m_modified_fields({ { "hash", true },
86 { "size", true },
87 { "bytes_transferred", true },
88 { "transmission_speed", true },
89 { "status", true },
90 { "magnet_link", true },
91 { "error_code", true },
92 { "start_time", true },
93 { "end_time", true },
94 { "duration", true } })
95 {
96 // remove all occurences of ./ in the file path
97 std::string file_path_str = file_path.string();
98 std::string x = "./";
99
100 size_t pos = 0;
101 while (true) {
102 pos = file_path_str.find(x, pos);
103 if (pos == std::string::npos) {
104 break;
105 }
106
107 file_path_str.replace(pos, x.length(), "");
108 }
109
110 m_file_path = std::filesystem::absolute(file_path_str);
111 }
IPFormat m_dest
Destination of the file transfer, not always initialized.
std::map< std::string, bool > m_modified_fields
Vector of modified fields in order : to send only the modified fields.
status_type::e_status m_status
Status of the file transfer.
std::string m_hash
TODO : Hash of the file sha1.
uint64_t m_bytes_size
Total size of the file in bytes.
uint64_t m_bytes_transferred
Number of bytes transferred or received.
std::string m_group_id
Group id of the file, used to group files together.
IPFormat m_src
Source of the file transfer.
std::filesystem::path m_file_path
Path of the file on the src filesystem.

◆ TransferMetadata() [2/2]

dunedaq::snbmodules::TransferMetadata::TransferMetadata ( const std::filesystem::path & src,
bool is_path = true )
inlineexplicit

Load from file constructor.

Definition at line 114 of file transfer_metadata.hpp.

115 {
116 if (is_path) {
118 } else {
119 from_string(src.string());
120 }
121 }
void from_string(const std::string &) override
Import metadata from string (json format)
void load_metadata_from_meta_file(std::filesystem::path src) override
Load metadata file from src.

◆ ~TransferMetadata()

virtual dunedaq::snbmodules::TransferMetadata::~TransferMetadata ( )
inlinevirtual

Definition at line 123 of file transfer_metadata.hpp.

123{}

Member Function Documentation

◆ export_to_string()

std::string dunedaq::snbmodules::TransferMetadata::export_to_string ( )
inlineoverridevirtual

Export metadata to string (json format)

Returns
Metadata in string format

Implements dunedaq::snbmodules::MetadataAbstract.

Definition at line 40 of file transfer_metadata.hpp.

40{ return export_to_string_partial(true); }
virtual std::string export_to_string_partial(bool force_all)
Export only the modified fields to a string.

◆ export_to_string_partial()

std::string dunedaq::snbmodules::TransferMetadata::export_to_string_partial ( bool force_all)
virtual

Export only the modified fields to a string.

Parameters
force_allExport everything if true
Returns
String containing the metadata

Definition at line 18 of file transfer_metadata.cpp.

19{
20 nlohmann::json j;
21 j["file_path"] = get_file_path().string();
22 j["source"] = get_src().get_ip_port();
23 j["destination"] = get_dest().get_ip_port();
24 j["group_id"] = get_group_id();
25
26 // not mandatory : to be refreshed when needed
27 if (force_all || m_modified_fields["hash"] == true) {
28 j["hash"] = get_hash();
29 }
30 if (force_all || m_modified_fields["size"] == true) {
31 j["size"] = get_size();
32 }
33 if (force_all || m_modified_fields["bytes_transferred"] == true) {
34 j["transfered"] = get_bytes_transferred();
35 }
36 if (force_all || m_modified_fields["transmission_speed"] == true) {
37 j["speed"] = get_transmission_speed();
38 }
39 if (force_all || m_modified_fields["status"] == true) {
41 }
42 if (force_all || m_modified_fields["magnet_link"] == true) {
43 j["magnet_link"] = get_magnet_link();
44 }
45 if (force_all || m_modified_fields["error_code"] == true) {
46 j["error_code"] = get_error_code();
47 }
48 if (force_all || m_modified_fields["start_time"] == true) {
49 j["start_t"] = get_start_time();
50 }
51 if (force_all || m_modified_fields["end_time"] == true) {
52 j["end_t"] = get_end_time();
53 }
54 if (force_all || m_modified_fields["duration"] == true) {
55 j["duration"] = m_duration;
56 }
57
58 m_modified_fields.clear();
59
60 return j.dump();
61}
std::string get_ip_port() const
Get the IP address and the port in the format "ip:port".
Definition ip_format.hpp:57
status_type::e_status get_status() const
int64_t m_duration
Duration of the transfer.
std::filesystem::path get_file_path() const
static std::string status_to_string(e_status e)

◆ from_string()

void dunedaq::snbmodules::TransferMetadata::from_string ( const std::string & s)
overridevirtual

Import metadata from string (json format)

Implements dunedaq::snbmodules::MetadataAbstract.

Definition at line 64 of file transfer_metadata.cpp.

65{
66 nlohmann::json j = nlohmann::json::parse(str);
67
68 TLOG() << "debug : Loading metadata from string " << str;
69
70 if (j.contains("file_path")) {
71 set_file_path(j["file_path"].get<std::filesystem::path>());
72 }
73 if (j.contains("hash")) {
74 set_hash(j["hash"].get<std::string>());
75 }
76 if (j.contains("size")) {
77 set_size(j["size"].get<uint64_t>()); // NOLINT
78 }
79 if (j.contains("transfered")) {
80 set_bytes_transferred(j["transfered"].get<uint64_t>()); // NOLINT
81 }
82 if (j.contains("speed")) {
83 set_transmission_speed(j["speed"].get<int32_t>());
84 }
85 if (j.contains("source")) {
86 set_src(IPFormat(j["source"].get<std::string>()));
87 }
88 if (j.contains("destination")) {
89 set_dest(IPFormat(j["destination"].get<std::string>()));
90 }
91 if (j.contains("status")) {
92 auto status = status_type::string_to_status(j["status"].get<std::string>());
93 if (status.has_value()) {
94 set_status(status.value());
95 } else {
96 ers::error(InvalidProtocolError(ERS_HERE, "reading metadata string process", j["status"].get<std::string>()));
97 }
98 }
99 if (j.contains("magnet_link")) {
100 set_magnet_link(j["magnet_link"].get<std::string>());
101 }
102 if (j.contains("group_id")) {
103 set_group_id(j["group_id"].get<std::string>());
104 }
105 if (j.contains("error_code")) {
106 set_error_code(j["error_code"].get<std::string>());
107 }
108 if (j.contains("start_t")) {
109 set_start_time(j["start_t"].get<int64_t>());
110 }
111 if (j.contains("end_t")) {
112 set_end_time(j["end_t"].get<int64_t>());
113 }
114 if (j.contains("duration")) {
115 set_duration(j["duration"].get<int64_t>());
116 }
117}
#define ERS_HERE
void set_error_code(std::string error_code)
void set_transmission_speed(int32_t transmission_speed)
void set_bytes_transferred(uint64_t bytes_transferred)
void set_magnet_link(std::string magnet_link)
void set_file_path(const std::filesystem::path &file_path)
void set_status(status_type::e_status status)
#define TLOG(...)
Definition macro.hpp:22
void error(const Issue &issue)
Definition ers.hpp:81
static std::optional< e_status > string_to_status(std::string s)

◆ generate_metadata_file()

void dunedaq::snbmodules::TransferMetadata::generate_metadata_file ( std::filesystem::path dest)
overridevirtual

Generaete metadata file to dest.

Parameters
dest

Implements dunedaq::snbmodules::MetadataAbstract.

Definition at line 120 of file transfer_metadata.cpp.

121{
122 std::ofstream metadata_file;
123 metadata_file.open(dest.append(get_file_name()).string() + TransferMetadata::m_file_extension);
124
125 metadata_file << export_to_string();
126
127 metadata_file.close();
128}
std::string export_to_string() override
Export metadata to string (json format)

◆ get_bytes_transferred()

uint64_t dunedaq::snbmodules::TransferMetadata::get_bytes_transferred ( ) const
inline

Definition at line 257 of file transfer_metadata.hpp.

257{ return m_bytes_transferred; }

◆ get_dest()

IPFormat dunedaq::snbmodules::TransferMetadata::get_dest ( ) const
inline

Definition at line 255 of file transfer_metadata.hpp.

255{ return m_dest; }

◆ get_end_time()

int64_t dunedaq::snbmodules::TransferMetadata::get_end_time ( ) const
inline

Definition at line 281 of file transfer_metadata.hpp.

281{ return m_end_time; }
int64_t m_end_time
End time of the transfer, 0 if not finished.

◆ get_end_time_str()

std::string dunedaq::snbmodules::TransferMetadata::get_end_time_str ( ) const
inline

Definition at line 293 of file transfer_metadata.hpp.

294 {
295 if (m_end_time == 0) {
296 return "N/A";
297 }
298 std::time_t t = m_end_time / 1000;
299 std::tm tm = *std::localtime(&t);
300 std::stringstream ss;
301 ss << std::put_time(&tm, "%d-%m-%Y %H:%M:%S");
302 return ss.str();
303 }

◆ get_error_code()

std::string dunedaq::snbmodules::TransferMetadata::get_error_code ( ) const
inline

Definition at line 265 of file transfer_metadata.hpp.

265{ return m_error_code; }
std::string m_error_code
show the error exception in case of error

◆ get_file_name()

std::string dunedaq::snbmodules::TransferMetadata::get_file_name ( ) const
inline

Definition at line 252 of file transfer_metadata.hpp.

252{ return m_file_path.filename().string(); }

◆ get_file_path()

std::filesystem::path dunedaq::snbmodules::TransferMetadata::get_file_path ( ) const
inline

Definition at line 251 of file transfer_metadata.hpp.

251{ return m_file_path; }

◆ get_group_id()

std::string dunedaq::snbmodules::TransferMetadata::get_group_id ( ) const
inline

Definition at line 260 of file transfer_metadata.hpp.

260{ return m_group_id; }

◆ get_hash()

std::string dunedaq::snbmodules::TransferMetadata::get_hash ( ) const
inline

Definition at line 253 of file transfer_metadata.hpp.

253{ return m_hash; }

◆ get_magnet_link()

std::string dunedaq::snbmodules::TransferMetadata::get_magnet_link ( ) const
inline

Definition at line 259 of file transfer_metadata.hpp.

259{ return m_magnet_link; }
std::string m_magnet_link
Magnet link of the file only for bit torrent.

◆ get_progress()

int dunedaq::snbmodules::TransferMetadata::get_progress ( ) const
inline

Definition at line 261 of file transfer_metadata.hpp.

262 {
263 return m_bytes_size == 0 ? 0 : static_cast<int>(m_bytes_transferred * 100 / m_bytes_size);
264 }

◆ get_size()

uint64_t dunedaq::snbmodules::TransferMetadata::get_size ( ) const
inline

Definition at line 256 of file transfer_metadata.hpp.

256{ return m_bytes_size; }

◆ get_src()

IPFormat dunedaq::snbmodules::TransferMetadata::get_src ( ) const
inline

Definition at line 254 of file transfer_metadata.hpp.

254{ return m_src; }

◆ get_start_time()

int64_t dunedaq::snbmodules::TransferMetadata::get_start_time ( ) const
inline

Definition at line 280 of file transfer_metadata.hpp.

280{ return m_start_time; }
int64_t m_start_time
Start time of the transfer, 0 if not started, reset if resumed.

◆ get_start_time_str()

std::string dunedaq::snbmodules::TransferMetadata::get_start_time_str ( ) const
inline

Definition at line 282 of file transfer_metadata.hpp.

283 {
284 if (m_start_time == 0) {
285 return "N/A";
286 }
287 std::time_t t = m_start_time / 1000;
288 std::tm tm = *std::localtime(&t);
289 std::stringstream ss;
290 ss << std::put_time(&tm, "%d-%m-%Y %H:%M:%S");
291 return ss.str();
292 }

◆ get_status()

status_type::e_status dunedaq::snbmodules::TransferMetadata::get_status ( ) const
inline

Definition at line 258 of file transfer_metadata.hpp.

258{ return m_status; }

◆ get_total_duration_ms()

int64_t dunedaq::snbmodules::TransferMetadata::get_total_duration_ms ( ) const
inline

Definition at line 267 of file transfer_metadata.hpp.

268 {
269 if (m_start_time == 0) {
270 return 0;
271 } else if (m_end_time == 0) {
272 return m_duration +
273 (std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch())
274 .count() -
276 } else {
277 return m_end_time - m_start_time;
278 }
279 }

◆ get_transmission_speed()

int32_t dunedaq::snbmodules::TransferMetadata::get_transmission_speed ( ) const
inline

Definition at line 266 of file transfer_metadata.hpp.

266{ return m_transmission_speed; }
int32_t m_transmission_speed
Transmission speed in bytes/s.

◆ load_metadata_from_meta_file()

void dunedaq::snbmodules::TransferMetadata::load_metadata_from_meta_file ( std::filesystem::path src)
overridevirtual

Load metadata file from src.

Parameters
src

Implements dunedaq::snbmodules::MetadataAbstract.

Definition at line 131 of file transfer_metadata.cpp.

132{
133 std::ifstream metadata_file;
134 try {
135 metadata_file.open(src.string());
136 } catch (const std::exception& e) {
137 ers::error(MetadataFileNotFoundError(ERS_HERE, e.what()));
138 return;
139 }
140
141 std::stringstream buffer;
142 buffer << metadata_file.rdbuf();
143
144 from_string(buffer.str());
145
146 metadata_file.close();
147}

◆ operator<()

bool dunedaq::snbmodules::TransferMetadata::operator< ( MetadataAbstract const & other) const
inlineoverridevirtual

Operator < overload.

Parameters
other
Returns

Implements dunedaq::snbmodules::MetadataAbstract.

Definition at line 56 of file transfer_metadata.hpp.

57 {
58 auto o = dynamic_cast<const TransferMetadata&>(other);
59 return m_file_path.string().compare(o.m_file_path.string());
60 }
TransferMetadata(const std::filesystem::path &file_path, uint64_t bytes_size, const IPFormat &src, const std::string &hash="", const IPFormat &dest=IPFormat(), const std::string &group_id="", uint64_t bytes_transferred=0, status_type::e_status status=status_type::e_status::WAITING)
Constructor.

◆ operator==()

bool dunedaq::snbmodules::TransferMetadata::operator== ( MetadataAbstract const & other) const
inlineoverridevirtual

Operator ==.

Implements dunedaq::snbmodules::MetadataAbstract.

Definition at line 47 of file transfer_metadata.hpp.

48 {
49 auto o = dynamic_cast<const TransferMetadata&>(other);
50 return m_file_path == o.m_file_path && m_src == o.m_src && m_dest == o.m_dest && m_group_id == o.m_group_id;
51 }

◆ set_bytes_transferred()

void dunedaq::snbmodules::TransferMetadata::set_bytes_transferred ( uint64_t bytes_transferred)
inline

Definition at line 176 of file transfer_metadata.hpp.

177 {
178 m_bytes_transferred = bytes_transferred;
179 m_modified_fields["bytes_transferred"] = true;
180 }

◆ set_dest()

void dunedaq::snbmodules::TransferMetadata::set_dest ( const IPFormat & dest)
inline

Definition at line 154 of file transfer_metadata.hpp.

155 {
156 // Check if the dest is not equal to the source
157 if (!(dest == m_src)) {
158 m_dest = dest;
159 } else {
160 throw std::invalid_argument("The destination cannot be equal to the source");
161 }
162 }

◆ set_duration()

void dunedaq::snbmodules::TransferMetadata::set_duration ( int64_t duration)
inline

Definition at line 232 of file transfer_metadata.hpp.

233 {
234 m_duration = duration;
235 m_modified_fields["duration"] = true;
236 }

◆ set_end_time()

void dunedaq::snbmodules::TransferMetadata::set_end_time ( int64_t end_time)
inline

Definition at line 244 of file transfer_metadata.hpp.

245 {
246 m_end_time = end_time;
247 m_modified_fields["end_time"] = true;
248 }

◆ set_error_code()

void dunedaq::snbmodules::TransferMetadata::set_error_code ( std::string error_code)
inline

Definition at line 220 of file transfer_metadata.hpp.

221 {
222 m_error_code = std::move(error_code);
223 m_modified_fields["error_code"] = true;
224 }

◆ set_file_path()

void dunedaq::snbmodules::TransferMetadata::set_file_path ( const std::filesystem::path & file_path)
inline

Definition at line 126 of file transfer_metadata.hpp.

127 {
128 // remove all occurences of ./ in the file path
129 std::string file_path_str = file_path.string();
130 std::string x = "./";
131
132 size_t pos = 0;
133 while (true) {
134 pos = file_path_str.find(x, pos);
135 if (pos == std::string::npos) {
136 break;
137 }
138
139 file_path_str.replace(pos, x.length(), "");
140 }
141 m_file_path = std::filesystem::absolute(file_path_str);
142 }

◆ set_group_id()

void dunedaq::snbmodules::TransferMetadata::set_group_id ( std::string group_id)
inline

Definition at line 143 of file transfer_metadata.hpp.

143{ m_group_id = std::move(group_id); }

◆ set_hash()

void dunedaq::snbmodules::TransferMetadata::set_hash ( std::string hash)
inline

Definition at line 164 of file transfer_metadata.hpp.

165 {
166 m_hash = std::move(hash);
167 m_modified_fields["hash"] = true;
168 }

◆ set_magnet_link()

void dunedaq::snbmodules::TransferMetadata::set_magnet_link ( std::string magnet_link)
inline

Definition at line 214 of file transfer_metadata.hpp.

215 {
216 m_magnet_link = std::move(magnet_link);
217 m_modified_fields["magnet_link"] = true;
218 }

◆ set_progress()

void dunedaq::snbmodules::TransferMetadata::set_progress ( int purcent)
inline

Definition at line 182 of file transfer_metadata.hpp.

183 {
184 if (purcent < 0 || purcent > 100) {
185 throw std::invalid_argument("The progress must be between 0 and 100");
186 }
187 set_bytes_transferred((purcent * m_bytes_size) / 100);
188 }

◆ set_size()

void dunedaq::snbmodules::TransferMetadata::set_size ( uint64_t size)
inline

Definition at line 170 of file transfer_metadata.hpp.

171 {
173 m_modified_fields["size"] = true;
174 }
FELIX Initialization std::string initerror FELIX queue timed std::string queuename Unexpected chunk size

◆ set_src()

void dunedaq::snbmodules::TransferMetadata::set_src ( const IPFormat & source)
inline

Definition at line 144 of file transfer_metadata.hpp.

145 {
146 // Check if the source is not equal to the dest
147 if (!(source == m_dest)) {
148 m_src = source;
149 } else {
150 throw std::invalid_argument("The source cannot be equal to the destination");
151 }
152 }

◆ set_start_time()

void dunedaq::snbmodules::TransferMetadata::set_start_time ( int64_t start_time)
inline

Definition at line 238 of file transfer_metadata.hpp.

239 {
241 m_modified_fields["start_time"] = true;
242 }
Cannot add TPSet with start_time

◆ set_status()

void dunedaq::snbmodules::TransferMetadata::set_status ( status_type::e_status status)
inline

Definition at line 190 of file transfer_metadata.hpp.

191 {
195 std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch())
196 .count();
197 }
199 m_end_time =
200 std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch())
201 .count();
203 }
204 if (status == status_type::e_status::PAUSED) {
205 m_duration +=
206 std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch())
207 .count() -
209 }
210
211 m_modified_fields["status"] = true;
212 }

◆ set_transmission_speed()

void dunedaq::snbmodules::TransferMetadata::set_transmission_speed ( int32_t transmission_speed)
inline

Definition at line 226 of file transfer_metadata.hpp.

227 {
228 m_transmission_speed = transmission_speed;
229 m_modified_fields["transmission_speed"] = true;
230 }

Member Data Documentation

◆ m_bytes_size

uint64_t dunedaq::snbmodules::TransferMetadata::m_bytes_size = 0
private

Total size of the file in bytes.

Definition at line 313 of file transfer_metadata.hpp.

◆ m_bytes_transferred

uint64_t dunedaq::snbmodules::TransferMetadata::m_bytes_transferred = 0
private

Number of bytes transferred or received.

Definition at line 316 of file transfer_metadata.hpp.

◆ m_dest

IPFormat dunedaq::snbmodules::TransferMetadata::m_dest = IPFormat()
private

Destination of the file transfer, not always initialized.

Definition at line 328 of file transfer_metadata.hpp.

◆ m_duration

int64_t dunedaq::snbmodules::TransferMetadata::m_duration = 0
private

Duration of the transfer.

Definition at line 346 of file transfer_metadata.hpp.

◆ m_end_time

int64_t dunedaq::snbmodules::TransferMetadata::m_end_time = 0
private

End time of the transfer, 0 if not finished.

Definition at line 343 of file transfer_metadata.hpp.

◆ m_error_code

std::string dunedaq::snbmodules::TransferMetadata::m_error_code = ""
private

show the error exception in case of error

Definition at line 337 of file transfer_metadata.hpp.

◆ m_file_extension

const std::string dunedaq::snbmodules::TransferMetadata::m_file_extension = ".tmetadata"
static

Definition at line 32 of file transfer_metadata.hpp.

◆ m_file_path

std::filesystem::path dunedaq::snbmodules::TransferMetadata::m_file_path = ""
private

Path of the file on the src filesystem.

Definition at line 307 of file transfer_metadata.hpp.

◆ m_group_id

std::string dunedaq::snbmodules::TransferMetadata::m_group_id = ""
private

Group id of the file, used to group files together.

Definition at line 334 of file transfer_metadata.hpp.

◆ m_hash

std::string dunedaq::snbmodules::TransferMetadata::m_hash = ""
private

TODO : Hash of the file sha1.

Definition at line 310 of file transfer_metadata.hpp.

◆ m_magnet_link

std::string dunedaq::snbmodules::TransferMetadata::m_magnet_link = ""
private

Magnet link of the file only for bit torrent.

Definition at line 331 of file transfer_metadata.hpp.

◆ m_modified_fields

std::map<std::string, bool> dunedaq::snbmodules::TransferMetadata::m_modified_fields
private
Initial value:
= {
{ "file_path", false }, { "hash", false }, { "bytes_size", false },
{ "bytes_transferred", false }, { "status", false }, { "magnet_link", false },
{ "group_id", false }, { "error_code", false }, { "transmission_speed", false },
{ "start_time", false }, { "end_time", false }, { "duration", false }
}

Vector of modified fields in order : to send only the modified fields.

Definition at line 349 of file transfer_metadata.hpp.

349 {
350 { "file_path", false }, { "hash", false }, { "bytes_size", false },
351 { "bytes_transferred", false }, { "status", false }, { "magnet_link", false },
352 { "group_id", false }, { "error_code", false }, { "transmission_speed", false },
353 { "start_time", false }, { "end_time", false }, { "duration", false }
354 };

◆ m_src

IPFormat dunedaq::snbmodules::TransferMetadata::m_src = IPFormat()
private

Source of the file transfer.

Definition at line 325 of file transfer_metadata.hpp.

◆ m_start_time

int64_t dunedaq::snbmodules::TransferMetadata::m_start_time = 0
private

Start time of the transfer, 0 if not started, reset if resumed.

Definition at line 340 of file transfer_metadata.hpp.

◆ m_status

status_type::e_status dunedaq::snbmodules::TransferMetadata::m_status = status_type::e_status::WAITING
private

Status of the file transfer.

Definition at line 322 of file transfer_metadata.hpp.

◆ m_transmission_speed

int32_t dunedaq::snbmodules::TransferMetadata::m_transmission_speed = 0
private

Transmission speed in bytes/s.

Definition at line 319 of file transfer_metadata.hpp.


The documentation for this class was generated from the following files: