Libraries/ConfigDB/src/include/ConfigDB/Format.h
Go to the documentation of this file.
1 
20 #pragma once
21 
23 #include "Status.h"
24 #include "StoreRef.h"
25 
26 namespace ConfigDB
27 {
28 class Database;
29 class Store;
30 class Object;
31 
33 {
34 public:
35  virtual Status getStatus() const = 0;
36 };
37 
39 {
40 public:
41  virtual Status getStatus() const = 0;
42 };
43 
47 class Format
48 {
49 public:
54  virtual std::unique_ptr<ExportStream> createExportStream(Database& db) const = 0;
55 
63  virtual std::unique_ptr<ExportStream> createExportStream(StoreRef store, const Object& object) const = 0;
64 
69  virtual size_t exportToStream(const Object& object, Print& output) const = 0;
70 
75  virtual size_t exportToStream(Database& database, Print& output) const = 0;
76 
81  virtual std::unique_ptr<ImportStream> createImportStream(Database& db) const = 0;
82 
90  virtual std::unique_ptr<ImportStream> createImportStream(StoreUpdateRef& store, Object& object) const = 0;
91 
95  virtual Status importFromStream(Object& object, Stream& source) const = 0;
96 
102  virtual Status importFromStream(Database& database, Stream& source) const = 0;
103 
107  virtual String getFileExtension() const = 0;
108 
112  virtual MimeType getMimeType() const = 0;
113 };
114 
115 } // namespace ConfigDB
Definition: Database.h:30
Definition: Libraries/ConfigDB/src/include/ConfigDB/Format.h:39
virtual Status getStatus() const =0
virtual MimeType getMimeType() const =0
Get the MIME type for this reader format.
virtual Status importFromStream(Object &object, Stream &source) const =0
De-serialise content from stream into object (RAM)
virtual std::unique_ptr< ExportStream > createExportStream(Database &db) const =0
Create a stream to serialize the entire database This is used for streaming asychronously to a web cl...
virtual size_t exportToStream(Database &database, Print &output) const =0
Serialise entire database directly to an output stream.
virtual std::unique_ptr< ImportStream > createImportStream(StoreUpdateRef &store, Object &object) const =0
Create a stream for de-serialising (writing) into a store.
virtual std::unique_ptr< ImportStream > createImportStream(Database &db) const =0
Create a stream for de-serialising (writing) into the database Used when updating a database from a r...
virtual size_t exportToStream(const Object &object, Print &output) const =0
Print object.
virtual String getFileExtension() const =0
Get the standard file extension for the reader implementation.
virtual std::unique_ptr< ExportStream > createExportStream(StoreRef store, const Object &object) const =0
Create a stream to serialize an Object.
virtual Status importFromStream(Database &database, Stream &source) const =0
De-serialise content from stream into database Each store is overwritten as it is loadded....
Definition: Libraries/ConfigDB/src/include/ConfigDB/Format.h:33
virtual Status getStatus() const =0
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
Base class for read-only stream.
Definition: DataSourceStream.h:46
Provides formatted output to stream.
Definition: Print.h:37
Base class for read/write stream.
Definition: ReadWriteStream.h:20
Base Stream class.
Definition: Wiring/Stream.h:33
The String class.
Definition: WString.h:133
MimeType
Definition: WebConstants.h:53
Definition: Array.h:26
Definition: Formatter.h:20
Definition: Status.h:54