classname_json_get

This function exports a single object to an output stream in JSON format.

Prototype

 
    MCO_RET	classname_json_get(	/*IN*/ classname *handle, 
                     void *stream_handle, 
                     mco_stream_write output_stream_writer );
 

Arguments

handle The address of a variable of type class handle

stream_handle

The output stream handle

output_stream_writer The handler function called by the runtime to format output

Description

This function exports a single object to an output stream. The runtime calls the application-defined handler to manage the output stream.

Note that this function is only generated if the -json flag is passed to the mcocomp utility.

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 object. (See the control structure mco_stream_write for further details.)

Return Codes

MCO_S_OK Database data exported successfully
MCO_E_WRITE_STREAM Error writing to output stream

Example

 
    /* 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 a single object */
    void export_obj()
    {
        mco_trans_h t;
        mco_cursor_t cur;
        <classname> obj;
        FILE *f = fopen("obj.json", "wb");
         
        /* Use the cursor to locate an object */
        mco_trans_start(db, MCO_READ_ONLY, MCO_TRANS_FOREGROUND, &t);
        <classname>_<indexname>_index_cursor(t, &cur);
        mco_cursor_first(t, &cur);
        <classname>_from_cursor(t, &cur, &obj);
         
        /* Export the object */
        <classname>_json_get(&obj, f, file_writer);
        mco_cursor_close(t, &cur);
        mco_trans_rollback(t);
        fclose(f);
    }