27 #include <string_view> 29 #include <type_traits> 47 std::string_view t_name,
48 std::string_view t_nameComparator =
"" 51 nameComparator(t_nameComparator)
56 std::string
const &getName()
const {
return name; }
57 std::string
const &getNameComparator()
const {
return nameComparator; }
59 void print(
FileData &fileData)
const {
60 printHeader(fileData);
61 printSource(fileData);
63 virtual void printHeader(
FileData &fileData)
const = 0;
64 virtual void printSource(
FileData &fileData)
const = 0;
66 virtual bool hasCSLData()
const {
return false; }
70 static std::unique_ptr<char const> typeName()
72 [[maybe_unused]]
int success;
73 char const *typeName = abi::__cxa_demangle(
74 typeid(std::remove_cv_t<std::remove_reference_t<Type>>).name(),
79 return std::unique_ptr<char const>(typeName);
84 std::string nameComparator;
87 template<
class ValueType>
92 IMPLEMENTS_STD_VECTOR(ValueType, data)
98 std::string_view name,
99 std::string_view indent,
103 out << indent <<
"std::vector<";
104 out << CheckPoint_Base::typeName<ValueType>().
get() <<
"> ";
106 if (mode == FileData::Header)
113 std::vector<ValueType> data;
116 template<
class ValueType>
127 std::string_view t_name,
128 std::string_view t_nameComparator =
"" 134 void printHeader(
FileData &fileData)
const override {
135 auto &out = fileData.getStream(FileData::Header);
136 declareFunction(out, name,
"", FileData::Header);
138 void printSource(
FileData &fileData)
const override {
139 auto &out = fileData.getStream(FileData::Source);
140 auto const &indent = fileData.indent();
141 declareFunction(out, name,
"", FileData::Source);
143 out << indent <<
"std::vector<csl::Expr> res(" << size() <<
");\n";
144 out << indent <<
"auto iter = res.begin();\n\n";
145 for (
const auto &expr : *
this) {
146 out << indent <<
"*iter++ = ";
147 expr->printCode(0, out);
150 out << indent <<
"return res;\n";
154 bool hasCSLData()
const override {
return true; }
156 data = cslData.readSequence(data.begin(), data.end());
Definition: checkpoint.h:88
Definition: fileData.h:34
Definition: checkpoint.h:38
Definition: checkpoint.h:42
Definition: csldatahandler.h:35
File data utility for doc brown's debugger.
Contains macros for MARTY's version in particular for doc brown's debugger.
Contains the handler of CSL data for doc brown's debugger.
Definition: checkpoint.h:117