This function exports the entire database contents, or individual objects, in JSON format.
MCO_RET mco_db_json_export( mco_trans_h t,
void *stream_handle,
mco_stream_write output_stream_writer );
| t | The mco_trans_h transaction handle returned by mco_trans_start() |
|
stream_handle |
The output stream handle |
| output_stream_writer | The handler function called by the runtime to format output |
This function exports database data to an output stream. The runtime calls the application-defined handler to manage the output stream.
It is the application’s responsibility to open the output stream in the proper mode to stream binary data, and to ensure that there is adequate space at the destination to hold the database. Indexes are not streamed. (See the control structure mco_stream_write for further details.)
| MCO_S_OK | Database data exported successfully |
| MCO_E_WRITE_STREAM | Error writing to output stream |
| MCO_E_JSER_NOINDEX | Some class(es) have no index(es), so the database cannot be exported |
/* Stream writer function matching the mco_stream_write prototype */
mco_size_sig_t file_writer(void *stream_handle /* FILE * */, const void *from, mco_size_t nbytes)
{
return fwrite(from, 1, nbytes, (FILE *)stream_handle);
}
/* Function to export the entire database contents */
void export_all()
{
mco_trans_h t;
FILE *f = fopen("db.json", "wb");
/* Export the database */
mco_trans_start(db, MCO_READ_ONLY, MCO_TRANS_FOREGROUND, &t);
mco_db_json_export(t, f, file_writer);
mco_trans_rollback(t);
fclose(f);
}