Enrollment 28.2.0
Loading...
Searching...
No Matches
Base64Strategy.h
Go to the documentation of this file.
1
9
10#pragma once
11
12#include "enrollment/Export.h"
14#include <memory>
15
16namespace inno
17{
18 extern "C"
19 {
20 struct inno_Base64StrategyImpl;
21
22 // Functions suitable for DLL interface
23 INNO_ENROLLMENT_API void inno_Base64Strategy_ToBase64(inno_Base64StrategyImpl* impl,
24 const uint8_t* array,
25 size_t size,
26 const char** outData);
27 INNO_ENROLLMENT_API inno_Base64StrategyImpl* inno_Base64Strategy_Construct();
28 INNO_ENROLLMENT_API void inno_Base64Strategy_Destruct(inno_Base64StrategyImpl* impl);
29 }
30
36 */
37 class Base64Strategy final : public BytesWriterStrategy
38 {
39 public:
40 void WriteBytes(Writer& writer, const char* name, const std::vector<uint8_t>& value) final
41 {
42 const char* outData = nullptr;
43 inno_Base64Strategy_ToBase64(impl.get(), value.data(), value.size(), &outData);
44 writer.Write(name, outData);
45 }
46
48 : impl(inno_Base64Strategy_Construct(), inno_Base64Strategy_Destruct)
49 {
50 }
51 Base64Strategy(const Base64Strategy&) = delete;
52 Base64Strategy(Base64Strategy&&) = delete;
53 Base64Strategy& operator=(const Base64Strategy&) = delete;
54 Base64Strategy& operator=(Base64Strategy&&) = delete;
55 virtual ~Base64Strategy() = default;
56
57 private:
58 std::unique_ptr<inno_Base64StrategyImpl, void (*)(inno_Base64StrategyImpl*)> impl;
59 };
60} // namespace inno
It writes bytes represented as std::vector<uint8_t> as base64 coded string.
Definition Base64Strategy.h:37
void WriteBytes(Writer &writer, const char *name, const std::vector< uint8_t > &value) final
It writes bytes in given writer.
Definition Base64Strategy.h:39
Provides interface for serialization of all classes.
Definition Writer.h:164