mco_calc_cinfo_browse

Browse through the calculator classes.

Prototype

 
    MCO_RET mco_calc_cinfo_browse(	/*IN*/ mco_calc_t * calc,
                      /*IN*/ mco_calc_cinfo_h handler,
                      /*IN*/ void * data);
 

Arguments

calc A handle to the initialized calculator object

handler

A user supplied handler function to process the class information

data

A pointer to user supplied data.

Description

This function browses through calculator classes, one class at time, and calls the user supplied handler function to process (print or perform some calculation with) the class information. Additional application-specific data may be passed into the handler function via parameter data.

Return Codes

MCO_S_OK The class statistics were collected successfully

MCO_E_TRANSACT

A transaction was in an error state during calculator processing

Example

The following code snippets demonstrate how mco_calc_cinfo_browse() is used to browse the calculator contents. Note that mco_calc_cinfo_browse() calls the application defined function class_print() to display the contents of each class.

 
    Application snippet:
        
     
    const char * dbname = "calc_db";
     
    static void class_print(mco_calc_t *calc, mco_cc_t *cls,
                    mco_cc_info_t *info, void *unused)
    {
        printf(" -> %s%s:\n", (info->is_pers ? "[PERSISTENT] " : ""), cls->cc_name);
        ...
    }
 
    int main(int argc, char* argv[])
    {
        MCO_RET            rc;
        mco_calc_t calc;
        mco_device_t       dev;
        mco_db_params_t    db_params;
        mco_cc_info_t info;
         
        mco_runtime_start();
        ...
        mco_calc_init(&calc, calc_db_get_dictionary());
        ...
        rc = mco_db_open_dev( dbname, simple_get_dictionary(), &dev, 1, &db_params );
        if ( MCO_S_OK != rc )
        {
            rc = mco_db_connect(  dbname, &calc.db );
            ...
            rc = mco_calc_reg_schema_classes(&calc, calc_db_get_calculator());
            ...
            rc = mco_calc_fill_db(&calc);
            ...
            rc = mco_calc_stat_collect(&calc);
            ...
            printf("\nClass info:\n");
            rc = mco_calc_cinfo_browse(&calc, class_print, (void*)0);
        
            ...
             
            /* NOTE: calculator *must* be deinitialized before you disconnect from the database */
            mco_calc_deinit(&calc);
         
            mco_db_disconnect(calc.db);
        }
    }
         

For further implementation details see SDK sample "samples/native/core/17-statistics/dbcalc".

Related Topics Link IconRelated Topics

Files

Header file:
mcodbcalc.h
Source file:
mcodbcalc.c
Library:
libmcodbcalc.a