mco_db_xml_import

Load an entire class from an external file.

Prototype

 
    MCO_RET	mco_db_xml_import(	/*IN*/ mco_trans_h t,
                   /*IN*/ void *stream_handle,
                   /*IN*/ mco_stream_read input_stream_reader );
 

Arguments

t

The mco_trans_h transaction handle returned by mco_trans_start().

stream_handle Handle to the input stream.
input_stream_reader Handler function called by the runtime to read the input.

Description

This function imports database data from an input stream. The runtime calls the application-defined handler to manage the input stream.

It is the application’s responsibility to open the input stream, in the proper mode to read binary data, and to ensure that there is adequate memory to hold the database. See the control structure stream_reader for further details.

Return Codes

MCO_S_OK The database was closed successfully.
MCO_E_NOINSTANCE The specified database is not opened.
MCO_E_NOMEM Out of memory allocating working memory.
MCO_E_LOAD_DATA XML tag not closed or mismatched quote.

Example

 
    Application snippet:
        
     
    mco_size_sig_t file_reader( void *stream_handle /* FILE *  */,  /* OUT */void *to, mco_size_t max_nbytes )
    {
        FILE *f = (FILE *)stream_handle;
        mco_size_sig_t nbs;
        nbs = fread( to, 1, max_nbytes, f );
        return nbs;
    }
     
    int  main(int argc, char** argv)
    {
        mco_db_h db;
        MCO_RET rc;
        mco_device_t       dev;
        mco_db_params_t    db_params;
        mco_trans_h t;
        FILE * f;
        …
        if( (rc = mco_runtime_start()) != MCO_S_OK)
            exit(-1);
             
        rc = mco_db_open_dev( dbname, simple_get_dictionary(), &dev, 1, &db_params );
        if ( MCO_S_OK != rc )
        {
            rc = mco_db_connect(dbname, &db);
            ...
             
            /* Import database */
            f = fopen( "db.xml", "rb" );
            if ( f == 0 ) 
            {
                printf( "\n\t Can't open input file for streaming\n");
            }
            else 
            { 
                rc = mco_trans_start(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, &t);
                if ( MCO_S_OK == rc ) 
                {
                    rc = mco_db_xml_import( t, f, file_reader );
        
                    if ( MCO_S_OK == rc ) 
                    {
                        rc = mco_trans_commit( t );
                        ...
                    }
                    fclose( f );
                    ...
                }
            }
            ...
        }
    }
     

 

Files

Header file:
mcoxml.h
Source file:
mcoxpars.c
Library:
libmcolib.a