From 8d8da12accc8a5bf9837f41cd8802d9a91dbf5c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Tue, 14 Jan 2020 15:38:13 -0500 Subject: [PATCH] fileutils: add way to save file from any raw data Change-Id: I6b778ec237ab4f517a710f1a827d55a264341e07 --- src/fileutils.cpp | 4 ++-- src/fileutils.h | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/fileutils.cpp b/src/fileutils.cpp index 2ae1eee521..53a13ea4d1 100644 --- a/src/fileutils.cpp +++ b/src/fileutils.cpp @@ -378,7 +378,7 @@ loadFile(const std::string& path, const std::string& default_dir) void saveFile(const std::string& path, - const std::vector<uint8_t>& data, + const uint8_t* data, size_t data_size, mode_t UNUSED mode) { std::ofstream file = fileutils::ofstream(path, std::ios::trunc | std::ios::binary); @@ -386,7 +386,7 @@ saveFile(const std::string& path, JAMI_ERR("Could not write data to %s", path.c_str()); return; } - file.write((char*)data.data(), data.size()); + file.write((char*)data, data_size); #ifndef _WIN32 if (chmod(path.c_str(), mode) < 0) JAMI_WARN("fileutils::saveFile(): chmod() failed on '%s', %s", path.c_str(), strerror(errno)); diff --git a/src/fileutils.h b/src/fileutils.h index 9fe5e82666..9468b9f507 100644 --- a/src/fileutils.h +++ b/src/fileutils.h @@ -108,7 +108,10 @@ namespace jami { namespace fileutils { * If path is relative, it is appended to default_dir. */ std::vector<uint8_t> loadFile(const std::string& path, const std::string& default_dir = {}); - void saveFile(const std::string& path, const std::vector<uint8_t>& data, mode_t mode=0644); + void saveFile(const std::string& path, const uint8_t* data, size_t data_size, mode_t mode=0644); + inline void saveFile(const std::string& path, const std::vector<uint8_t>& data, mode_t mode=0644) { + saveFile(path, data.data(), data.size(), mode); + } std::vector<uint8_t> readArchive(const std::string& path, const std::string& password = {}); void writeArchive(const std::string& data, const std::string& path, const std::string& password = {}); -- GitLab