⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfd-data-access.m2c

📁 开发snmp的开发包有两个开放的SNMP开发库
💻 M2C
字号:
##//#########################################################  -*- c -*-##//generic include for XXX. Do not use directly.####//$Id: mfd-data-access.m2c 14170 2006-01-26 17:02:48Z dts12 $##//######################################################################//######################################################################## lower conf files get confused with multiple processing types, so## set single options@eval $mfd_data_access_processing_type = "$m2c_processing_type"@@eval $m2c_processing_type = 'h'@@open ${name}_data_access.h@@eval $hack = "Id"@/* * Note: this file originally auto-generated by mib2c using *       version $Revision: 14170 $ of $RCSfile$ * * $$hack:$ */@if $m2c_mark_boundary == 1@/** START code generated by $RCSfile$ $Revision: 14170 $ */@end@@eval $m2c_save = "$name"@@eval $name = "${name}_DATA_ACCESS"@@include generic-header-top.m2i@@eval $name = "$m2c_save"@/* ********************************************************************* * function declarations *//* ********************************************************************* * Table declarations */@foreach $table table@@    include m2c_setup_table.m2i@@    include details-table.m2i@##@    eval $m2c_tmp=""@##@    foreach $node index@##@      include m2c_setup_node.m2i@##@      eval $m2c_tmp="$m2c_tmp, $m2c_node_param_val"@##@    end@ // for each index    int ${context}_init_data(${context}_registration * ${context}_reg);@    include mfd-access-${m2c_table_access}-defines.m2i@    int ${context}_row_prep( ${context}_rowreq_ctx *rowreq_ctx);@  if ($m2c_table_row_creation == 1) || ($m2c_table_persistent == 1)@int ${context}_validate_index( ${context}_registration * ${context}_reg,                               ${context}_rowreq_ctx *rowreq_ctx);@    foreach $node externalindex@@        include m2c_setup_node.m2i@    int ${context}_${node}_check_index( ${context}_rowreq_ctx *rowreq_ctx ); /* external */@    end@ # foreach externalindex@    foreach $node internalindex@@        include m2c_setup_node.m2i@int ${node}_check_index( ${context}_rowreq_ctx *rowreq_ctx ); /* internal */@    end@ # foreach internalindex@  end@ # row creation/persistent@end@@eval $m2c_save = "$name"@@eval $name = "${name}_DATA_ACCESS"@@include generic-header-bottom.m2i@@eval $name = "$m2c_save"@##//####################################################################//Do the .c file##//##################################################################@eval $m2c_processing_type = 'c'@@open ${name}_data_access.c@/* * Note: this file originally auto-generated by mib2c using *       version $Revision: 14170 $ of $RCSfile$  * * $$hack:$ */@include generic-source-includes.m2i@#include "${name}_data_access.h"/** @ingroup interface * @addtogroup data_access data_access: Routines to access data * * These routines are used to locate the data used to satisfy * requests. *  * @{ */@foreach $table table@@    include m2c_setup_table.m2i@@    include details-table.m2i@/** * initialization for ${context} data access * * This function is called during startup to allow you to * allocate any resources you need for the data table. * * @param ${context}_reg *        Pointer to ${context}_registration * * @retval MFD_SUCCESS : success. * @retval MFD_ERROR   : unrecoverable error. */int${context}_init_data(${context}_registration * ${context}_reg){    DEBUGMSGTL(("verbose:${context}:${context}_init_data","called\n"));    /*     * TODO:303:o: Initialize $context data.     */@ifconf ${table}_init_data.m2i@@   include ${table}_init_data.m2i@@else@@   if $m2c_include_examples == 1@$example_start    /*     * if you are the sole writer for the file, you could     * open it here. However, as stated earlier, we are assuming     * the worst case, which in this case means that the file is     * written to by someone else, and might not even exist when     * we start up. So we can't do anything here.     */$example_end@   end@    return MFD_SUCCESS;@end@ #ifconf} /* ${context}_init_data */@    include mfd-access-${m2c_table_access}-defines.m2i@/** * prepare row for processing. * *  When the agent has located the row for a request, this function is *  called to prepare the row for processing. If you fully populated *  the data context during the index setup phase, you may not need to *  do anything. * * @param rowreq_ctx pointer to a context. * * @retval MFD_SUCCESS     : success. * @retval MFD_ERROR       : other error. */int${context}_row_prep( ${context}_rowreq_ctx *rowreq_ctx){    DEBUGMSGTL(("verbose:${context}:${context}_row_prep","called\n"));    netsnmp_assert(NULL != rowreq_ctx);    /*     * TODO:390:o: Prepare row for request.     * If populating row data was delayed, this is the place to     * fill in the row for this request.     */    return MFD_SUCCESS;} /* ${context}_row_prep */##//####################################################################@  if ($m2c_table_row_creation == 1) || ($m2c_table_persistent == 1)@/* * TODO:420:r: Implement $context index validation. */@    foreach $node externalindex@@        include m2c_setup_node.m2i@@        if $m2c_report_progress == 1@@           print | |   +-> Processing index $node@@        end@@        include details-node.m2i@/** * check validity of ${node} external index portion * * NOTE: this is not the place to do any checks for the sanity *       of multiple indexes. Those types of checks should be done in the *       ${context}_validate_index() function. * * @retval MFD_SUCCESS   : the incoming value is legal * @retval MFD_ERROR     : the incoming value is NOT legal */int${context}_${node}_check_index( ${context}_rowreq_ctx *rowreq_ctx ){    DEBUGMSGTL(("verbose:${context}:${context}_${node}_check_index","called\n"));    netsnmp_assert(NULL != rowreq_ctx);    /*     * TODO:424:M: |-> Check $context external index $node.     * check that index value in the table context (rowreq_ctx)     * for the external index $node is legal.     */    return MFD_SUCCESS; /*  external index $node ok */} /* ${context}_${node}_check_index */@    end@ # foreach externalindex@    foreach $node internalindex@@        include m2c_setup_node.m2i@@        if $m2c_report_progress == 1@@           print | |   +-> Processing index $node@@        end@@        include details-node.m2i@/** * check validity of ${node} index portion * * @retval MFD_SUCCESS   : the incoming value is legal * @retval MFD_ERROR     : the incoming value is NOT legal * * @note this is not the place to do any checks for the sanity *       of multiple indexes. Those types of checks should be done in the *       ${context}_validate_index() function. * * @note Also keep in mind that if the index refers to a row in this or *       some other table, you can't check for that row here to make *       decisions, since that row might not be created yet, but may *       be created during the processing this request. If you have *       such checks, they should be done in the check_dependencies *       function, because any new/deleted/changed rows should be *       available then. * * The following checks have already been done for you:@if $node.enums == 1@ *    The value is one of $m2c_evals@elsif $node.ranges == 1@@    if ("$node.decl" eq "long") || ("$node.decl" eq "u_long")@@        eval $m2c_tmp_ns = "value"@@    else@@        eval $m2c_tmp_ns = "length"@@    end@ *    The $m2c_tmp_ns is in (one of) the range set(s): $m2c_evals@end@ * * If there a no other checks you need to do, simply return MFD_SUCCESS. */int${node}_check_index( ${context}_rowreq_ctx *rowreq_ctx ){    DEBUGMSGTL(("verbose:${context}:${node}_check_index","called\n"));    netsnmp_assert(NULL != rowreq_ctx);    /*     * TODO:426:M: |-> Check $context index $node.     * check that index value in the table context is legal.     * (rowreq_ctx->tbl_index.$node)     */    return MFD_SUCCESS; /* $node index ok */} /* ${node}_check_index */@    end@ # foreach internalindex/** * verify specified index is valid. * * This check is independent of whether or not the values specified for * the columns of the new row are valid. Column values and row consistency * will be checked later. At this point, only the index values should be * checked. * * All of the individual index validation functions have been called, so this * is the place to make sure they are valid as a whole when combined. If * you only have one index, then you probably don't need to do anything else * here. *  * @note Keep in mind that if the indexes refer to a row in this or *       some other table, you can't check for that row here to make *       decisions, since that row might not be created yet, but may *       be created during the processing this request. If you have *       such checks, they should be done in the check_dependencies *       function, because any new/deleted/changed rows should be *       available then. * * * @param ${context}_reg *        Pointer to the user registration data * @param ${context}_rowreq_ctx *        Pointer to the users context. * @retval MFD_SUCCESS            : success * @retval MFD_CANNOT_CREATE_NOW  : index not valid right now * @retval MFD_CANNOT_CREATE_EVER : index never valid */int${context}_validate_index( ${context}_registration * ${context}_reg,                           ${context}_rowreq_ctx *rowreq_ctx){    int rc = MFD_SUCCESS;    DEBUGMSGTL(("verbose:${context}:${context}_validate_index","called\n"));    /** we should have a non-NULL pointer */    netsnmp_assert( NULL != rowreq_ctx );    /*     * TODO:430:M: |-> Validate potential $context index.     */    if(1) {        snmp_log(LOG_WARNING,"invalid index for a new row in the "                 "${context} table.\n");        /*         * determine failure type.         *         * If the index could not ever be created, return MFD_NOT_EVER         * If the index can not be created under the present circumstances         * (even though it could be created under other circumstances),         * return MFD_NOT_NOW.         */        if(0) {            return MFD_CANNOT_CREATE_EVER;        }        else {            return MFD_CANNOT_CREATE_NOW;        }    }    return rc;} /* ${context}_validate_index */@  end@ # persistent/row creation@end@##/** @} */##//####################################################################@if $m2c_mark_boundary == 1@/** END code generated by $RCSfile$ $Revision: 14170 $ */@end@@eval $m2c_processing_type = "$mfd_data_access_processing_type"@

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -