ifw-core  2.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
file.hpp
Go to the documentation of this file.
1 
9 #ifndef IFW_CTD_FILE_HPP_
10 #define IFW_CTD_FILE_HPP_
11 
12 #include <string>
13 
14 #include "ctd/defines/defines.hpp"
15 
16 
17 namespace ctd::file {
18 
20  // TODO: Change to "enum class RootType {".
21  typedef enum {
22  SYSROOT = 1,
23  INTROOT = 2,
24  DATAROOT = 4,
25  CFGPATH = 8,
28  } RootType;
29 
30  // Standard roots environment variables.
31  const std::string SYSROOT_STR = "SYSROOT";
32  const std::string INTROOT_STR = "INTROOT";
33  const std::string DATAROOT_STR = "DATAROOT";
34  const std::string CFGPATH_STR = "CFGPATH";
35 
38  typedef enum {
40  RES_AUDIO = 2,
41  RES_IMAGE = 4,
42  RES_MODEL = 8,
44  RES_DATA = 32,
47  } ResourceType;
48 
49  // Standard resource directories.
50  const std::string RES_DIR = "resource";
51  const std::string RES_CONFIG_STR = "config";
52  const std::string RES_AUDIO_STR = "audio";
53  const std::string RES_IMAGE_STR = "image";
54  const std::string RES_MODEL_STR = "model";
55  const std::string RES_DICTIONARY_STR = "dictionary";
56  const std::string RES_DATA_STR = "data";
57 
59  std::string RootVarTypeNbToString(const RootType type);
60 
62  RootType RootVarTypeStringToNb(const std::string& type);
63 
65  std::string ResDirNbToString(const ResourceType type);
66 
68  ResourceType ResDirStringToNb(const std::string& type);
69 
71  std::string ResolvePath(const std::string& filename);
72 
74  std::string CreateIfwFilename(const std::string& filename,
75  const RootType root,
76  const ResourceType resource,
77  const std::string& extension = "");
78 
80  std::string CheckAddExtension(const std::string& filename,
81  const std::string& extension);
82 
84  void RemoveFile(const std::string& filename);
85 
128  std::string FindFile(const std::string& filename,
130  int32_t resources = RES_ALL,
131  const bool exception = true);
132 
143  std::string LoadFile(const std::string& filename,
144  std::string* complete_filename = nullptr,
146  ResourceType resources = RES_ALL);
147 
154  void SaveFile(const std::string& filename,
155  const std::string& buffer,
156  const bool overwrite = true);
157 
158 }
159 
160 
161 #endif // !IFW_CTD_FILE_HPP_
void RemoveFile(const std::string &filename)
Remove the referenced file, if it exists.
Definition: file.cpp:74
std::string ResDirNbToString(ResourceType type)
Convert resource type from number to string representation.
Definition: file.cpp:36
Definition: file.hpp:40
const std::string RES_CONFIG_STR
Definition: file.hpp:51
Common definitions.
const std::string SYSROOT_STR
Definition: file.hpp:31
const std::string RES_DATA_STR
Definition: file.hpp:56
const std::string RES_MODEL_STR
Definition: file.hpp:54
Definition: file.hpp:42
Definition: file.hpp:39
const std::string RES_AUDIO_STR
Definition: file.hpp:52
RootType RootVarTypeStringToNb(const std::string &type)
Convert root type from string to number representation.
Definition: file.cpp:25
Definition: file.hpp:27
std::string ResolvePath(const std::string &filename)
Resolve the filename if it contains env. variables, &quot;~&quot; and relative paths.
Definition: file.cpp:126
Definition: file.hpp:23
Definition: file.hpp:22
std::string CreateIfwFilename(const std::string &filename, const RootType root, const ResourceType resource, const std::string &extension)
Create a resource path in the IFW deployment environment.
Definition: file.cpp:93
Definition: file.hpp:45
Definition: file.hpp:41
const std::string INTROOT_STR
Definition: file.hpp:32
Definition: file.hpp:24
ResourceType ResDirStringToNb(const std::string &type)
Convert resource type from string to number representation.
Definition: file.cpp:49
const std::string CFGPATH_STR
Definition: file.hpp:34
const std::string RES_DICTIONARY_STR
Definition: file.hpp:55
const std::string DATAROOT_STR
Definition: file.hpp:33
Definition: file.hpp:25
RootType
Types of ELT deployment environment roots.
Definition: file.hpp:21
Definition: file.hpp:26
std::string RootVarTypeNbToString(RootType type)
Convert root type from number to string representation.
Definition: file.cpp:15
std::string CheckAddExtension(const std::string &filename, const std::string &extension)
Check if filename has the specified extension (no initiating dot). If not, add it.
Definition: file.cpp:62
const std::string RES_DIR
Definition: file.hpp:50
Definition: file.hpp:43
const std::string RES_IMAGE_STR
Definition: file.hpp:53
ResourceType
Definition: file.hpp:38
std::string FindFile(const std::string &filename, RootType roots, int32_t resources, const bool exception)
Locate file in the locations defined by the ELT ICS deployment environment.
Definition: file.cpp:156
Definition: file.hpp:44
void SaveFile(const std::string &filename, const std::string &buffer, const bool overwrite)
Save the contents inthe buffer into the given filename.
Definition: file.cpp:267
std::string LoadFile(const std::string &filename, std::string *complete_filename, RootType roots, ResourceType resources)
Load a file and return the content.
Definition: file.cpp:242