Skip to content
Snippets Groups Projects
Commit 8d8da12a authored by Adrien Béraud's avatar Adrien Béraud
Browse files

fileutils: add way to save file from any raw data

Change-Id: I6b778ec237ab4f517a710f1a827d55a264341e07
parent dfdc0b61
No related branches found
No related tags found
No related merge requests found
...@@ -378,7 +378,7 @@ loadFile(const std::string& path, const std::string& default_dir) ...@@ -378,7 +378,7 @@ loadFile(const std::string& path, const std::string& default_dir)
void void
saveFile(const std::string& path, saveFile(const std::string& path,
const std::vector<uint8_t>& data, const uint8_t* data, size_t data_size,
mode_t UNUSED mode) mode_t UNUSED mode)
{ {
std::ofstream file = fileutils::ofstream(path, std::ios::trunc | std::ios::binary); std::ofstream file = fileutils::ofstream(path, std::ios::trunc | std::ios::binary);
...@@ -386,7 +386,7 @@ saveFile(const std::string& path, ...@@ -386,7 +386,7 @@ saveFile(const std::string& path,
JAMI_ERR("Could not write data to %s", path.c_str()); JAMI_ERR("Could not write data to %s", path.c_str());
return; return;
} }
file.write((char*)data.data(), data.size()); file.write((char*)data, data_size);
#ifndef _WIN32 #ifndef _WIN32
if (chmod(path.c_str(), mode) < 0) if (chmod(path.c_str(), mode) < 0)
JAMI_WARN("fileutils::saveFile(): chmod() failed on '%s', %s", path.c_str(), strerror(errno)); JAMI_WARN("fileutils::saveFile(): chmod() failed on '%s', %s", path.c_str(), strerror(errno));
......
...@@ -108,7 +108,10 @@ namespace jami { namespace fileutils { ...@@ -108,7 +108,10 @@ namespace jami { namespace fileutils {
* If path is relative, it is appended to default_dir. * If path is relative, it is appended to default_dir.
*/ */
std::vector<uint8_t> loadFile(const std::string& path, const std::string& 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 = {}); 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 = {}); void writeArchive(const std::string& data, const std::string& path, const std::string& password = {});
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment