diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-05-01 20:49:21 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2025-06-03 22:46:26 +0200 |
| commit | 0d359b46b36aae30b3599c52764e9d972e6cc5ce (patch) | |
| tree | c12a9b6172996483a72c92a29df29c8f602a5969 /src/lib | |
| parent | 8e84a2e70cf228b91f089e7eec23fe8c7e334666 (diff) | |
Add to/from string conversion for FileTransferProtocol.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/types.cc | 31 | ||||
| -rw-r--r-- | src/lib/types.h | 6 | ||||
| -rw-r--r-- | src/lib/upload_destination.cc | 4 |
3 files changed, 38 insertions, 3 deletions
diff --git a/src/lib/types.cc b/src/lib/types.cc index 28d58f36b..46ec38361 100644 --- a/src/lib/types.cc +++ b/src/lib/types.cc @@ -75,7 +75,6 @@ CPLSummary::CPLSummary (boost::filesystem::path p) } - ReelType string_to_reel_type(string type) { @@ -111,3 +110,33 @@ reel_type_to_string(ReelType type) DCPOMATIC_ASSERT(false); return "single"; } + + +FileTransferProtocol +file_transfer_protocol_from_string(string s) +{ + if (s == "scp") { + return FileTransferProtocol::SCP; + } else if (s == "ftp") { + return FileTransferProtocol::FTP; + } + + DCPOMATIC_ASSERT(false); + return FileTransferProtocol::SCP; +} + + +string +file_transfer_protocol_to_string(FileTransferProtocol p) +{ + switch (p) { + case FileTransferProtocol::SCP: + return "scp"; + case FileTransferProtocol::FTP: + return "ftp"; + default: + DCPOMATIC_ASSERT(false); + } + + return ""; +} diff --git a/src/lib/types.h b/src/lib/types.h index f6b0fb3be..9cc20d8b4 100644 --- a/src/lib/types.h +++ b/src/lib/types.h @@ -139,11 +139,17 @@ struct CPLSummary time_t last_write_time; }; + enum class FileTransferProtocol { SCP, FTP }; + +FileTransferProtocol file_transfer_protocol_from_string(std::string s); +std::string file_transfer_protocol_to_string(FileTransferProtocol p); + + enum class EmailProtocol { AUTO, PLAIN, diff --git a/src/lib/upload_destination.cc b/src/lib/upload_destination.cc index 7acce968b..fe5a94eeb 100644 --- a/src/lib/upload_destination.cc +++ b/src/lib/upload_destination.cc @@ -25,7 +25,7 @@ UploadDestination::UploadDestination(cxml::ConstNodePtr node) : name(node->string_child("Name")) - , protocol(node->string_child("Protocol") == "SCP" ? FileTransferProtocol::SCP : FileTransferProtocol::FTP) + , protocol(file_transfer_protocol_from_string(node->string_child("Protocol"))) , passive_ftp(node->bool_child("PassiveFTP")) , host(node->string_child("Host")) , path(node->string_child("Path")) @@ -40,7 +40,7 @@ void UploadDestination::as_xml(xmlpp::Element* parent) const { cxml::add_text_child(parent, "Name", name); - cxml::add_text_child(parent, "Protocol", protocol == FileTransferProtocol::SCP ? "SCP" : "FTP"); + cxml::add_text_child(parent, "Protocol", file_transfer_protocol_to_string(protocol)); cxml::add_text_child(parent, "PassiveFTP", passive_ftp ? "1" : "0"); cxml::add_text_child(parent, "Host", host); cxml::add_text_child(parent, "Path", path); |
