12#include "enrollment/Export.h"
20 struct inno_JsonWriterImpl;
23 INNO_ENROLLMENT_API
void inno_JsonWriter_WriteNull(inno_JsonWriterImpl* impl,
const char* name);
24 INNO_ENROLLMENT_API
void inno_JsonWriter_WriteInt(inno_JsonWriterImpl* impl,
const char* name,
int value);
25 INNO_ENROLLMENT_API
void inno_JsonWriter_WriteString(inno_JsonWriterImpl* impl,
28 INNO_ENROLLMENT_API
void inno_JsonWriter_WriteUInt(inno_JsonWriterImpl* impl,
31 INNO_ENROLLMENT_API
void inno_JsonWriter_WriteDouble(inno_JsonWriterImpl* impl,
const char* name,
double value);
32 INNO_ENROLLMENT_API
void inno_JsonWriter_WriteLongInt(inno_JsonWriterImpl* impl,
35 INNO_ENROLLMENT_API
void inno_JsonWriter_WriteLongUint(inno_JsonWriterImpl* impl,
38 INNO_ENROLLMENT_API
void inno_JsonWriter_StartArray(inno_JsonWriterImpl* impl,
const char* name);
39 INNO_ENROLLMENT_API
void inno_JsonWriter_EndArray(inno_JsonWriterImpl* impl);
40 INNO_ENROLLMENT_API
void inno_JsonWriter_StartObject(inno_JsonWriterImpl* impl,
const char* name);
41 INNO_ENROLLMENT_API
void inno_JsonWriter_EndObject(inno_JsonWriterImpl* impl);
42 INNO_ENROLLMENT_API
const char* inno_JsonWriter_Output(inno_JsonWriterImpl* impl);
43 INNO_ENROLLMENT_API inno_JsonWriterImpl* inno_JsonWriter_Construct();
44 INNO_ENROLLMENT_API
void inno_JsonWriter_Destruct(inno_JsonWriterImpl* impl);
59 [[nodiscard]]
const char*
Output()
const
61 return inno_JsonWriter_Output(impl.get());
77 void WriteNull(
const char* name)
final
79 inno_JsonWriter_WriteNull(impl.get(), name);
81 void Write(
const char* name,
const char* value)
final
83 inno_JsonWriter_WriteString(impl.get(), name, value);
85 void Write(
const char* name,
int value)
final
87 inno_JsonWriter_WriteInt(impl.get(), name, value);
89 void Write(
const char* name,
unsigned int value)
final
91 inno_JsonWriter_WriteUInt(impl.get(), name, value);
93 void Write(
const char* name,
double value)
final
95 inno_JsonWriter_WriteDouble(impl.get(), name, value);
97 void Write(
const char* name, int64_t value)
final
99 inno_JsonWriter_WriteLongInt(impl.get(), name, value);
101 void Write(
const char* name, uint64_t value)
final
103 inno_JsonWriter_WriteLongUint(impl.get(), name, value);
105 void Write(
const char* name,
const std::shared_ptr<Image>& image)
final
107 if (image !=
nullptr)
109 auto encoder = image->OriginalEncoder();
110 WriteArray(name, encoder->Encode(image->AsRawImage()));
121 : impl(inno_JsonWriter_Construct(), inno_JsonWriter_Destruct)
131 std::unique_ptr<inno_JsonWriterImpl, void (*)(inno_JsonWriterImpl*)> impl;
133 void StartObject(
const char* name)
135 inno_JsonWriter_StartObject(impl.get(), name);
139 inno_JsonWriter_EndObject(impl.get());
141 void StartArray(
const char* name)
final
143 inno_JsonWriter_StartArray(impl.get(), name);
145 void EndArray() final
147 inno_JsonWriter_EndArray(impl.get());
JSON implementation of Writer abstraction.
Definition JsonWriter.h:52
JsonWriter()
Constructor sets up serialization backend.
Definition JsonWriter.h:119
void Write(const char *name, unsigned int value) final
Serialize unsigned int.
Definition JsonWriter.h:88
void Write(const char *name, uint64_t value) final
Serialize uint64_t integer.
Definition JsonWriter.h:100
void WriteRoot(Serializable &s) final
Serialize serializable as root object.
Definition JsonWriter.h:70
void Write(const char *name, int value) final
Serialize int.
Definition JsonWriter.h:84
void Write(const char *name, int64_t value) final
Serialize int64_t integer.
Definition JsonWriter.h:96
void Write(const char *name, const std::shared_ptr< Image > &image) final
Serialize Image.
Definition JsonWriter.h:104
void Write(const char *name, double value) final
Serialize double.
Definition JsonWriter.h:92
void WriteNull(const char *name) final
Serialize null object.
Definition JsonWriter.h:76
const char * Output() const
Provides serialization output.
Definition JsonWriter.h:58
void Write(const char *name, const Serializable &s) final
Serialize serializable.
Definition JsonWriter.h:63
void Write(const char *name, const char *value) final
Serialize string.
Definition JsonWriter.h:80
Interface that MUST be implemented by all classes those want to be serialized.
Definition Writer.h:27
void WriteArray(const char *name, const std::vector< uint8_t > &value)
Serialize bytes from vector.
Definition Writer.h:233