Libraries/ConfigDB/src/include/ConfigDB/Json/Format.h
Go to the documentation of this file.
1 
20 #pragma once
21 
22 #include "../Format.h"
23 
24 namespace ConfigDB::Json
25 {
29 class Format : public ConfigDB::Format
30 {
31 public:
32  DEFINE_FSTR_LOCAL(fileExtension, ".json")
33 
34  std::unique_ptr<ExportStream> createExportStream(Database& db, const ExportOptions& options) const override;
35  std::unique_ptr<ExportStream> createExportStream(StoreRef store, const Object& object,
36  const ExportOptions& options) const override;
37  size_t exportToStream(const Object& object, Print& output, const ExportOptions& options) const override;
38  size_t exportToStream(Database& database, Print& output, const ExportOptions& options) const override;
39  std::unique_ptr<ImportStream> createImportStream(Database& db) const override;
40  std::unique_ptr<ImportStream> createImportStream(StoreUpdateRef& store, Object& object) const override;
41  Status importFromStream(Object& object, Stream& source) const override;
42  Status importFromStream(Database& database, Stream& source) const override;
43 
44  String getFileExtension() const override
45  {
46  return fileExtension;
47  }
48 
49  MimeType getMimeType() const override
50  {
51  return MimeType::JSON;
52  }
53 };
54 
55 extern Format format;
56 
57 } // namespace ConfigDB::Json
Definition: Database.h:30
Interface for formatted export stream.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Format.h:64
Abstract base class wrapping support for a specific storage format, such as JSON.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Format.h:73
Definition: Libraries/ConfigDB/src/include/ConfigDB/Format.h:33
MimeType getMimeType() const override
Get the MIME type for this reader format.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Json/Format.h:49
String getFileExtension() const override
Get the standard file extension for the reader implementation.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Json/Format.h:44
size_t exportToStream(const Object &object, Print &output, const ExportOptions &options) const override
Print object.
std::unique_ptr< ExportStream > createExportStream(Database &db, const ExportOptions &options) const override
Create a stream to serialize the entire database.
std::unique_ptr< ImportStream > createImportStream(Database &db) const override
Create a stream for de-serialising (writing) into the database Used when updating a database from a r...
Status importFromStream(Object &object, Stream &source) const override
De-serialise content from stream into object (RAM)
An object can contain other objects, properties and arrays.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:37
Definition: StoreRef.h:29
Definition: StoreRef.h:46
Provides formatted output to stream.
Definition: Print.h:37
Base Stream class.
Definition: Wiring/Stream.h:33
The String class.
Definition: WString.h:133
#define DEFINE_FSTR_LOCAL(name, str)
Like DEFINE_FSTR except reference is declared static constexpr.
Definition: String.hpp:84
MimeType
Definition: WebConstants.h:53
Definition: Libraries/ConfigDB/src/include/ConfigDB/Json/Format.h:25
Definition: Formatter.h:20
Options for streaming object output.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Format.h:41
Definition: Status.h:54