tdata
[table]

Implement a table with datamatted storage. More...

Functions

void  _netsnmp_tdata_generate_index_oid (netsnmp_tdata_row *row)
netsnmp_tdata netsnmp_tdata_create_table (const char *name, long flags)
  creates and returns a 'tdata' table data structure
void  netsnmp_tdata_delete_table (netsnmp_tdata *table)
  creates and returns a 'tdata' table data structure
netsnmp_tdata_row netsnmp_tdata_create_row (void)
  creates and returns a pointer to new row data structure
netsnmp_tdata_row netsnmp_tdata_clone_row (netsnmp_tdata_row *row)
  clones a 'tdata' row.
int  netsnmp_tdata_copy_row (netsnmp_tdata_row *dst_row, netsnmp_tdata_row *src_row)
  copy the contents of a 'tdata' row.
void *  netsnmp_tdata_delete_row (netsnmp_tdata_row *row)
  deletes the memory used by the specified row returns the table-specific entry data (that it doesn't know how to delete)
int  netsnmp_tdata_add_row (netsnmp_tdata *table, netsnmp_tdata_row *row)
  Adds a row to the given table (stored in proper lexographical order).
void  netsnmp_tdata_replace_row (netsnmp_tdata *table, netsnmp_tdata_row *origrow, netsnmp_tdata_row *newrow)
  swaps out origrow with newrow.
netsnmp_tdata_row netsnmp_tdata_remove_row (netsnmp_tdata *table, netsnmp_tdata_row *row)
  removes a row from the given table and returns it (no free's called)
void *  netsnmp_tdata_remove_and_delete_row (netsnmp_tdata *table, netsnmp_tdata_row *row)
  removes and frees a row of the given table and returns the table-specific entry data
netsnmp_mib_handler netsnmp_get_tdata_handler (netsnmp_tdata *table)
  Creates a tdata handler and returns it.
int  _netsnmp_tdata_helper_handler (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)
int  netsnmp_tdata_register (netsnmp_handler_registration *reginfo, netsnmp_tdata *table, netsnmp_table_registration_info *table_info)
  registers a tdata-based MIB table
int  netsnmp_tdata_unregister (netsnmp_handler_registration *reginfo)
netsnmp_tdata netsnmp_tdata_extract_table (netsnmp_request_info *request)
  extracts the tdata table from the request structure
netsnmp_container netsnmp_tdata_extract_container (netsnmp_request_info *request)
  extracts the tdata container from the request structure
netsnmp_tdata_row netsnmp_tdata_extract_row (netsnmp_request_info *request)
  extracts the tdata row being accessed from the request structure
void *  netsnmp_tdata_extract_entry (netsnmp_request_info *request)
  extracts the (table-specific) entry being accessed from the request structure
NETSNMP_INLINE void  netsnmp_insert_tdata_row (netsnmp_request_info *request, netsnmp_tdata_row *row)
  inserts a newly created tdata row into a request
void *  netsnmp_tdata_row_entry (netsnmp_tdata_row *row)
  returns the (table-specific) entry data for a given row
netsnmp_tdata_row netsnmp_tdata_row_first (netsnmp_tdata *table)
  returns the first row in the table
netsnmp_tdata_row netsnmp_tdata_row_get (netsnmp_tdata *table, netsnmp_tdata_row *row)
  finds a row in the 'tdata' table given another row
netsnmp_tdata_row netsnmp_tdata_row_next (netsnmp_tdata *table, netsnmp_tdata_row *row)
  returns the next row in the table
netsnmp_tdata_row netsnmp_tdata_row_get_byidx (netsnmp_tdata *table, netsnmp_variable_list *indexes)
  finds a row in the 'tdata' table given the index values
netsnmp_tdata_row netsnmp_tdata_row_get_byoid (netsnmp_tdata *table, oid *searchfor, size_t searchfor_len)
  finds a row in the 'tdata' table given the index OID
netsnmp_tdata_row netsnmp_tdata_row_next_byidx (netsnmp_tdata *table, netsnmp_variable_list *indexes)
  finds the lexically next row in the 'tdata' table given the index values
netsnmp_tdata_row netsnmp_tdata_row_next_byoid (netsnmp_tdata *table, oid *searchfor, size_t searchfor_len)
  finds the lexically next row in the 'tdata' table given the index OID
int  netsnmp_tdata_row_count (netsnmp_tdata *table)
int  netsnmp_tdata_compare_idx (netsnmp_tdata_row *row, netsnmp_variable_list *indexes)
  compare a row with the given index values
int  netsnmp_tdata_compare_oid (netsnmp_tdata_row *row, oid *compareto, size_t compareto_len)
  compare a row with the given index OID
int  netsnmp_tdata_compare_subtree_idx (netsnmp_tdata_row *row, netsnmp_variable_list *indexes)
int  netsnmp_tdata_compare_subtree_oid (netsnmp_tdata_row *row, oid *compareto, size_t compareto_len)

Variables

Netsnmp_Node_Handler  _netsnmp_tdata_helper_handler

Detailed Description

Implement a table with datamatted storage.

This helper helps you implement a table where all the rows are expected to be stored within the agent itself and not in some external storage location. It can be used to store a list of rows, where a row consists of the indexes to the table and a generic data pointer. You can then implement a subhandler which is passed the exact row definition and data it must return data for or accept data for. Complex GETNEXT handling is greatly simplified in this case.


Function Documentation

netsnmp_mib_handler* netsnmp_get_tdata_handler ( netsnmp_tdata table  ) 

Creates a tdata handler and returns it.

Definition at line 283 of file table_tdata.c.

NETSNMP_INLINE void netsnmp_insert_tdata_row ( netsnmp_request_info request,
netsnmp_tdata_row row  
)

inserts a newly created tdata row into a request

Definition at line 405 of file table_tdata.c.

int netsnmp_tdata_add_row ( netsnmp_tdata table,
netsnmp_tdata_row row  
)

Adds a row to the given table (stored in proper lexographical order).

returns SNMPERR_SUCCESS on successful addition. or SNMPERR_GENERR on failure (E.G., indexes already existed)

Definition at line 185 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_clone_row ( netsnmp_tdata_row row  ) 

clones a 'tdata' row.

DOES NOT CLONE THE TABLE-SPECIFIC ENTRY DATA.

Definition at line 93 of file table_tdata.c.

int netsnmp_tdata_compare_idx ( netsnmp_tdata_row row,
netsnmp_variable_list indexes  
)

compare a row with the given index values

Definition at line 524 of file table_tdata.c.

int netsnmp_tdata_compare_oid ( netsnmp_tdata_row row,
oid *  compareto,
size_t  compareto_len  
)

compare a row with the given index OID

Definition at line 537 of file table_tdata.c.

int netsnmp_tdata_copy_row ( netsnmp_tdata_row dst_row,
netsnmp_tdata_row src_row  
)

copy the contents of a 'tdata' row.

DOES NOT COPY THE TABLE-SPECIFIC ENTRY DATA.

Definition at line 129 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_create_row ( void   ) 

creates and returns a pointer to new row data structure

Definition at line 85 of file table_tdata.c.

netsnmp_tdata* netsnmp_tdata_create_table ( const char *  name,
long  flags  
)

creates and returns a 'tdata' table data structure

Definition at line 55 of file table_tdata.c.

void* netsnmp_tdata_delete_row ( netsnmp_tdata_row row  ) 

deletes the memory used by the specified row returns the table-specific entry data (that it doesn't know how to delete)

Definition at line 156 of file table_tdata.c.

void netsnmp_tdata_delete_table ( netsnmp_tdata table  ) 

creates and returns a 'tdata' table data structure

Definition at line 69 of file table_tdata.c.

netsnmp_container* netsnmp_tdata_extract_container ( netsnmp_request_info request  ) 

extracts the tdata container from the request structure

Definition at line 376 of file table_tdata.c.

void* netsnmp_tdata_extract_entry ( netsnmp_request_info request  ) 

extracts the (table-specific) entry being accessed from the request structure

Definition at line 393 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_extract_row ( netsnmp_request_info request  ) 

extracts the tdata row being accessed from the request structure

Definition at line 385 of file table_tdata.c.

netsnmp_tdata* netsnmp_tdata_extract_table ( netsnmp_request_info request  ) 

extracts the tdata table from the request structure

Definition at line 368 of file table_tdata.c.

int netsnmp_tdata_register ( netsnmp_handler_registration reginfo,
netsnmp_tdata table,
netsnmp_table_registration_info table_info  
)

registers a tdata-based MIB table

Definition at line 350 of file table_tdata.c.

void* netsnmp_tdata_remove_and_delete_row ( netsnmp_tdata table,
netsnmp_tdata_row row  
)

removes and frees a row of the given table and returns the table-specific entry data

returns the void * pointer on successful deletion. or NULL on failure (bad arguments)

Definition at line 259 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_remove_row ( netsnmp_tdata table,
netsnmp_tdata_row row  
)

removes a row from the given table and returns it (no free's called)

returns the row pointer itself on successful removing. or NULL on failure (bad arguments)

Definition at line 241 of file table_tdata.c.

void netsnmp_tdata_replace_row ( netsnmp_tdata table,
netsnmp_tdata_row origrow,
netsnmp_tdata_row newrow  
)

swaps out origrow with newrow.

This does *not* delete/free anything!

Definition at line 226 of file table_tdata.c.

void* netsnmp_tdata_row_entry ( netsnmp_tdata_row row  ) 

returns the (table-specific) entry data for a given row

Definition at line 420 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_row_first ( netsnmp_tdata table  ) 

returns the first row in the table

Definition at line 430 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_row_get ( netsnmp_tdata table,
netsnmp_tdata_row row  
)

finds a row in the 'tdata' table given another row

Definition at line 437 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_row_get_byidx ( netsnmp_tdata table,
netsnmp_variable_list indexes  
)

finds a row in the 'tdata' table given the index values

Definition at line 453 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_row_get_byoid ( netsnmp_tdata table,
oid *  searchfor,
size_t  searchfor_len  
)

finds a row in the 'tdata' table given the index OID

Definition at line 466 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_row_next ( netsnmp_tdata table,
netsnmp_tdata_row row  
)

returns the next row in the table

Definition at line 445 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_row_next_byidx ( netsnmp_tdata table,
netsnmp_variable_list indexes  
)

finds the lexically next row in the 'tdata' table given the index values

Definition at line 481 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_row_next_byoid ( netsnmp_tdata table,
oid *  searchfor,
size_t  searchfor_len  
)

finds the lexically next row in the 'tdata' table given the index OID

Definition at line 495 of file table_tdata.c.


Generated on 28 Sep 2009 for net-snmp by  doxygen 1.6.1