/*
 * Note: this file originally auto-generated by mib2c using
 *       version : 1.48 $ of : mfd-top.m2c,v $
 *
 * $Id$
 */
#ifndef TCPCONNECTIONTABLE_H
#define TCPCONNECTIONTABLE_H

#ifdef __cplusplus
extern          "C" {
#endif


/** @addtogroup misc misc: Miscellaneous routines
 *
 * @{
 */
#include <net-snmp/library/asn1.h>
#include <net-snmp/data_access/tcpConn.h>

    /*
     * other required module components 
     */
    /* *INDENT-OFF*  */
config_require(tcp-mib/data_access/tcpConn);
config_require(tcp-mib/tcpConnectionTable/tcpConnectionTable_interface);
config_require(tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access);
    /* *INDENT-ON*  */

    /*
     * OID, column number and enum definions for tcpConnectionTable 
     */
#include "tcpConnectionTable_constants.h"

    /*
     *********************************************************************
     * function declarations
     */
    void            init_tcpConnectionTable(void);
    void            shutdown_tcpConnectionTable(void);

    /*
     *********************************************************************
     * Table declarations
     */
/**********************************************************************
 **********************************************************************
 ***
 *** Table tcpConnectionTable
 ***
 **********************************************************************
 **********************************************************************/
    /*
     * TCP-MIB::tcpConnectionTable is subid 19 of tcp.
     * Its status is Current.
     * OID: .1.3.6.1.2.1.6.19, length: 8
     */
    /*
     *********************************************************************
     * When you register your mib, you get to provide a generic
     * pointer that will be passed back to you for most of the
     * functions calls.
     *
     * TODO:100:r: Review all context structures
     */
    /*
     * TODO:101:o: |-> Review tcpConnectionTable registration context.
     */
    typedef struct tConnectionT_user_ctx {

        void           *dummy;

    } tcpConnectionTable_registration;

/**********************************************************************/
    /*
     * TODO:110:r: |-> Review tcpConnectionTable data context structure.
     * This structure is used to represent the data for tcpConnectionTable.
     */
    typedef netsnmp_tcpconn_entry tcpConnectionTable_data;


    /*
     *********************************************************************
     * TODO:115:o: |-> Review tcpConnectionTable undo context.
     * We're just going to use the same data structure for our
     * undo_context. If you want to do something more efficent,
     * define your typedef here.
     */
    typedef tcpConnectionTable_data tcpConnectionTable_undo_data;

    /*
     * TODO:120:r: |-> Review tcpConnectionTable mib index.
     * This structure is used to represent the index for tcpConnectionTable.
     */
    typedef struct tcpConnectionTable_mib_index_s {

        /*
         * tcpConnectionLocalAddressType(1)/InetAddressType/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h
         */
        u_long          tcpConnectionLocalAddressType;

        /*
         * tcpConnectionLocalAddress(2)/InetAddress/ASN_OCTET_STR/char(char)//L/a/w/e/R/d/h
         */
        /** 128 - 5(other indexes) - oid length(10) = 112 */
        /** but 20 = size of ipv6z address, longest supported type */
        char            tcpConnectionLocalAddress[20];
        size_t          tcpConnectionLocalAddress_len;

        /*
         * tcpConnectionLocalPort(3)/InetPortNumber/ASN_UNSIGNED/u_long(u_long)//l/a/w/e/R/d/H
         */
        u_long          tcpConnectionLocalPort;

        /*
         * tcpConnectionRemAddressType(4)/InetAddressType/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h
         */
        u_long          tcpConnectionRemAddressType;

        /*
         * tcpConnectionRemAddress(5)/InetAddress/ASN_OCTET_STR/char(char)//L/a/w/e/R/d/h
         */
        /** 128 - 5(other indexes) - oid length(10) = 112 */
        /** but 20 = size of ipv6z address, longest supported type */
        char            tcpConnectionRemAddress[20];
        size_t          tcpConnectionRemAddress_len;

        /*
         * tcpConnectionRemPort(6)/InetPortNumber/ASN_UNSIGNED/u_long(u_long)//l/a/w/e/R/d/H
         */
        u_long          tcpConnectionRemPort;


    } tcpConnectionTable_mib_index;

    /*
     * TODO:121:r: |   |-> Review tcpConnectionTable max index length.
     * If you KNOW that your indexes will never exceed a certain
     * length, update this macro to that length.
     *
     * BE VERY CAREFUL TO TAKE INTO ACCOUNT THE MAXIMUM
     * POSSIBLE LENGHT FOR EVERY VARIABLE LENGTH INDEX!
     * Guessing 128 - col/entry(2)  - oid len(8)
     */
#define MAX_tcpConnectionTable_IDX_LEN     44


    /*
     *********************************************************************
     * TODO:130:o: |-> Review tcpConnectionTable Row request (rowreq) context.
     * When your functions are called, you will be passed a
     * tcpConnectionTable_rowreq_ctx pointer.
     */
    typedef struct tcpConnectionTable_rowreq_ctx_s {

    /** this must be first for container compare to work */
        netsnmp_index   oid_idx;
        oid             oid_tmp[MAX_tcpConnectionTable_IDX_LEN];

        tcpConnectionTable_mib_index tbl_idx;

        tcpConnectionTable_data *data;
        tcpConnectionTable_undo_data *undo;
        unsigned int    column_set_flags;       /* flags for set columns */


        /*
         * flags per row. Currently, the first (lower) 8 bits are reserved
         * for the user. See mfd.h for other flags.
         */
        u_int           rowreq_flags;

        /*
         * TODO:131:o: |   |-> Add useful data to tcpConnectionTable rowreq context.
         */

        /*
         * storage for future expansion
         */
        netsnmp_data_list *tcpConnectionTable_data_list;

    } tcpConnectionTable_rowreq_ctx;

    typedef struct tcpConnectionTable_ref_rowreq_ctx_s {
        tcpConnectionTable_rowreq_ctx *rowreq_ctx;
    } tcpConnectionTable_ref_rowreq_ctx;

    /*
     *********************************************************************
     * function prototypes
     */
    int
     
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        tcpConnectionTable_pre_request(tcpConnectionTable_registration *
                                       user_context);
    int
     
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        tcpConnectionTable_post_request(tcpConnectionTable_registration *
                                        user_context, int rc);

    int
     
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        tcpConnectionTable_rowreq_ctx_init(tcpConnectionTable_rowreq_ctx *
                                           rowreq_ctx,
                                           void *user_init_ctx);
    void
     
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        tcpConnectionTable_rowreq_ctx_cleanup(tcpConnectionTable_rowreq_ctx
                                              * rowreq_ctx);

    tcpConnectionTable_data *tcpConnectionTable_allocate_data(void);
    void            tcpConnectionTable_release_data(tcpConnectionTable_data
                                                    * data);
    tcpConnectionTable_rowreq_ctx
        * tcpConnectionTable_row_find_by_mib_index
        (tcpConnectionTable_mib_index * mib_idx);

    extern const oid      tcpConnectionTable_oid[];
    extern const int      tcpConnectionTable_oid_size;


#include "tcpConnectionTable_interface.h"
#include "tcpConnectionTable_data_access.h"
    /*
     *********************************************************************
     * GET function declarations
     */

    /*
     *********************************************************************
     * GET Table declarations
     */
/**********************************************************************
 **********************************************************************
 ***
 *** Table tcpConnectionTable
 ***
 **********************************************************************
 **********************************************************************/
    /*
     * TCP-MIB::tcpConnectionTable is subid 19 of tcp.
     * Its status is Current.
     * OID: .1.3.6.1.2.1.6.19, length: 8
     */
    /*
     * indexes
     */

    int             tcpConnectionState_get(tcpConnectionTable_rowreq_ctx *
                                           rowreq_ctx,
                                           u_long *
                                           tcpConnectionState_val_ptr);
    int             tcpConnectionProcess_get(tcpConnectionTable_rowreq_ctx
                                             * rowreq_ctx,
                                             u_long *
                                             tcpConnectionProcess_val_ptr);


    int
     
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        tcpConnectionTable_indexes_set_tbl_idx(tcpConnectionTable_mib_index
                                               * tbl_idx,
                                               u_long
                                               tcpConnectionLocalAddressType_val,
                                               const void
                                               *tcpConnectionLocalAddress_val_ptr,
                                               size_t
                                               tcpConnectionLocalAddress_val_ptr_len,
                                               u_long
                                               tcpConnectionLocalPort_val,
                                               u_long
                                               tcpConnectionRemAddressType_val,
                                               const void
                                               *tcpConnectionRemAddress_val_ptr,
                                               size_t
                                               tcpConnectionRemAddress_val_ptr_len,
                                               u_long
                                               tcpConnectionRemPort_val);
    int
     
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        tcpConnectionTable_indexes_set(tcpConnectionTable_rowreq_ctx *
                                       rowreq_ctx,
                                       u_long
                                       tcpConnectionLocalAddressType_val,
                                       const void
                                       *tcpConnectionLocalAddress_val_ptr,
                                       size_t
                                       tcpConnectionLocalAddress_val_ptr_len,
                                       u_long tcpConnectionLocalPort_val,
                                       u_long
                                       tcpConnectionRemAddressType_val,
                                       const void
                                       *tcpConnectionRemAddress_val_ptr,
                                       size_t
                                       tcpConnectionRemAddress_val_ptr_len,
                                       u_long tcpConnectionRemPort_val);



    /*
     *********************************************************************
     * SET function declarations
     */

    /*
     *********************************************************************
     * SET Table declarations
     */
/**********************************************************************
 **********************************************************************
 ***
 *** Table tcpConnectionTable
 ***
 **********************************************************************
 **********************************************************************/
    /*
     * TCP-MIB::tcpConnectionTable is subid 19 of tcp.
     * Its status is Current.
     * OID: .1.3.6.1.2.1.6.19, length: 8
     */


    int
     
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        tcpConnectionTable_undo_setup(tcpConnectionTable_rowreq_ctx *
                                      rowreq_ctx);
    int
     
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        tcpConnectionTable_undo_cleanup(tcpConnectionTable_rowreq_ctx *
                                        rowreq_ctx);
    int             tcpConnectionTable_undo(tcpConnectionTable_rowreq_ctx *
                                            rowreq_ctx);
    int             tcpConnectionTable_commit(tcpConnectionTable_rowreq_ctx
                                              * rowreq_ctx);
    int
     
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        tcpConnectionTable_undo_commit(tcpConnectionTable_rowreq_ctx *
                                       rowreq_ctx);


    int
     
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        tcpConnectionState_check_value(tcpConnectionTable_rowreq_ctx *
                                       rowreq_ctx,
                                       u_long tcpConnectionState_val);
    int
     
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        tcpConnectionState_undo_setup(tcpConnectionTable_rowreq_ctx *
                                      rowreq_ctx);
    int             tcpConnectionState_set(tcpConnectionTable_rowreq_ctx *
                                           rowreq_ctx,
                                           u_long tcpConnectionState_val);
    int             tcpConnectionState_undo(tcpConnectionTable_rowreq_ctx *
                                            rowreq_ctx);

    int
     
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        tcpConnectionProcess_check_value(tcpConnectionTable_rowreq_ctx *
                                         rowreq_ctx,
                                         u_long tcpConnectionProcess_val);
    int
     
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        tcpConnectionProcess_undo_setup(tcpConnectionTable_rowreq_ctx *
                                        rowreq_ctx);
    int             tcpConnectionProcess_set(tcpConnectionTable_rowreq_ctx
                                             * rowreq_ctx,
                                             u_long
                                             tcpConnectionProcess_val);
    int             tcpConnectionProcess_undo(tcpConnectionTable_rowreq_ctx
                                              * rowreq_ctx);


    int
     
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        tcpConnectionTable_check_dependencies(tcpConnectionTable_rowreq_ctx
                                              * ctx);


    /*
     * DUMMY markers, ignore
     *
     * TODO:099:x: *************************************************************
     * TODO:199:x: *************************************************************
     * TODO:299:x: *************************************************************
     * TODO:399:x: *************************************************************
     * TODO:499:x: *************************************************************
     */

#ifdef __cplusplus
}
#endif
#endif                          /* TCPCONNECTIONTABLE_H */
/**  @} */

