PLCnext API Documentation 25.0.2.69
JsonSerializationContext.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/System/Core/PimplPtr.hxx"
9
10namespace Arp { namespace System { namespace Commons { namespace Json
11{
12
13// forwards
14class JsonReader;
15class JsonWriter;
16class JsonDocument;
17
19class ARP_CXX_SYMBOL_EXPORT JsonSerializationContext
20{
21public: // Impl forward declaration
22 class Impl;
23
24public: // usings
25
26public: // construction/destruction/assignment
27 explicit JsonSerializationContext(JsonDocument& document);
28
31 JsonSerializationContext& operator=(const JsonSerializationContext& arg) = delete;
34
35public: // setter/getter operations
36 const JsonDocument& GetDocument(void);
37
38public: // operations
39 String ResolvePath(const char* documentPath);
40 String ResolveRelativePath(const String& documentPath);
41 String ResolvePlaceholder(const char* input);
42 void InvalidJsonObjectOccurs(JsonReader& reader, const char* jsonObjectName);
43
44public: // Impl operations
45 Impl& GetImpl(void);
46 const Impl& GetImpl(void)const;
47
48private: // Impl usings
49 using Pimpl = PimplPtr<Impl>;
50
51private: // Impl fields
52 Pimpl pimpl;
53};
54
55}}}} // end of namespace Arp::System::Commons::Json
Adapter class to implement PImpl idiom.
Definition: PimplPtr.hxx:15
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
Definition: JsonReader.hpp:22
Json context used during Json reading and writing to hold the context information
Definition: JsonSerializationContext.hpp:20
JsonSerializationContext & operator=(JsonSerializationContext &&arg) noexcept
Default move-assignment operator.
JsonSerializationContext(JsonSerializationContext &&arg) noexcept
Default move constructor.
Root namespace for the PLCnext API