BackEndMl Class Reference
Declared in |
|
class BackEndMl; |
flip::BackEndMl
represents a concrete format data type which, using a DataProvider
or DataConsumer
, allows to read or write and fill a generic back end representation of a document.
The object itself does not hold any data, and just act as a parser/formatter from the intermediate representation of the document to the provider/consumer.
BackEndMl
will format the data in a textual format with a specific markup language :
- This format is not compact
- This format is not considered secure for production
- This format is not performant
- This format is human readable and editable in any plain text editing software
See BackEndBinary for a a format ready for production.
Normally, this class is used through the use of BackEndIR directly. See the documentation for more details.
DataProvider
s and DataConsumer
s provides an abstraction to the underlying storage media from which to read or write to.
Member Functions Synopsys
Constructs the | |
Destructs the | |
Format the data from the intermediate representation to the data consumer | |
Parse the data from the data provider to the intermediate representation |
Member Functions
Constructor
BackEndMl (); |
Default constructor.
Destructor
~BackEndMl (); |
Destructor.
write
void write (DataConsumerBase & consumer, const BackEndIR & ir); |
Format the data from the intermediate representation of the document and feed them to the consumer.
Example :
#include "flip/BackEndMl.h" |
#include "flip/BackEndIR.h" |
#include "flip/contrib/DataConsumerFile.h" |
Document document (Model::use (), user_id, manufacturer_id, component_id); |
[...] |
// put the result of document serialisation in a file |
DataConsumerFile consumer ("/path/to/file"); |
// get the backend intermediate representation |
BackEndIR backend = document.write (); |
// write the backend intermediate representation to markup language, using the consumer |
backend.write <BackEndMl> (consumer); |
// now the file is filled with the document serialisation in markup language format |
read
void read (DataProviderBase & provider, BackEndIR & ir); |
Parse the data from the data provider and fill the intermediate representation of the document.
Example :
#include "flip/BackEndMl.h" |
#include "flip/BackEndIR.h" |
#include "flip/cotnrib/DataProviderFile.h" |
DataProviderFile provider ("/path/to/file"); |
// tell the backend to automatically recognize the markup language format |
BackEndIR backend; |
backend.register_backend <BackEndMl> (); |
bool ok_flag = backend.read (provider); |
if (!ok_flag) return; // a corruption occured |
Document document (Model::use (), user_id, manufacturer_id, component_id); |
// change the document with the content of the backend |
document.read (backend); |
// commit the changes |
document.commit (); |