forked from RGNC/plingua
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathformats.cpp
More file actions
83 lines (61 loc) · 1.95 KB
/
formats.cpp
File metadata and controls
83 lines (61 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <parser/constants.hpp>
#include <formats.hpp>
#include <serialization.hpp>
#include <parser/parser.hpp>
#include <cereal/archives/xml.hpp>
#include <cereal/archives/json.hpp>
#include <cereal/archives/binary.hpp>
#include <cereal/archives/portable_binary.hpp>
namespace plingua
{
// ADD A FUNCTION CALL TO YOUR CODIFYING FUNCTION
bool codify(Format format, const File& file, const std::string& path) {
switch(format) {
case JSON : return codifyJson(file, path);
case XML : return codifyXml(file, path);
case PLI : return codifyPli(file, path);
case BINARY : return codifyBinary(file,path);
case PORTABLE : return codifyPortable(file,path);
case CPLUSPLUS : return codifyCplusplus(file,path);
// HERE
default : printFatalMessage("Invalid format"); return false;
}
return true;
}
bool codifyJson(const File& file, const std::string& path) {
saveToJsonFile(path,file);
return true;
}
bool codifyXml(const File& file, const std::string& path) {
saveToJsonFile(path,file);
return true;
}
bool codifyPli(const File& file, const std::string& path) {
std::ofstream os(path);
os << file;
return true;
}
bool codifyBinary(const File& file, const std::string& path) {
saveToBinaryFile(path,file);
return true;
}
bool codifyPortable(const File& file, const std::string& path) {
saveToPortableBinaryFile(path,file);
return true;
}
void printFatalMessage(const std::string& message) {
parser::PARSER.error(message.c_str(),parser::LEVEL_FATAL);
}
void printErrorMessage(const std::string& message) {
parser::PARSER.error(message.c_str(),parser::LEVEL_ERROR);
}
void printWarningMessage(const std::string& message) {
parser::PARSER.error(message.c_str(),parser::LEVEL_WARNING);
}
void printInfoMessage(const std::string& message){
parser::PARSER.error(message.c_str(),parser::LEVEL_INFO);
}
void printDebugMessage(const std::string& message) {
parser::PARSER.error(message.c_str(),parser::LEVEL_DEBUG_1);
}
}