#include <mib.h>
Public Member Functions | |
MibTable (const MibTable &) | |
Copy constructor. | |
MibTable (const Oidx &) | |
Constructor with object identifier with single index object like string or oid with implied length. | |
MibTable (const Oidx &, unsigned int) | |
Constructor with object identifier and single index object's index length (meassured in subidentifiers). | |
MibTable (const Oidx &, unsigned int, boolean) | |
Constructor with object identifier and given fixed index length. | |
MibTable (const Oidx &, const index_info *, unsigned int) | |
Constructor with object identifier and given index structure. | |
virtual | ~MibTable () |
Destructor. | |
mib_type | type () const |
Return the type of the receiver. | |
virtual MibEntryPtr | clone () |
Clone the receiver object. | |
virtual void | add_col (MibLeaf *) |
Add a column to the receiver table. | |
virtual void | add_col (snmpRowStatus *) |
Add a row status column to the receiver table. | |
virtual void | replace_col (unsigned int, MibLeaf *) |
Replace a column of the table. | |
virtual boolean | serialize (char *&, int &) |
Serialize the values of the receiver table. | |
virtual boolean | deserialize (char *, int &) |
Read the value of the receiver from a byte stream. | |
virtual OidxPtr | max_key () |
Return the immediate successor of the greatest object identifier within the receiver's scope. | |
virtual void | update (Request *) |
This method is called by a Mib instance whenever it needs to know how many rows the receiver contains. | |
virtual boolean | is_empty () |
Return whether the table is empty or not. | |
virtual int | set_value (Request *, int) |
Set a value of column in a row of the receiver table. | |
virtual void | get_request (Request *, int) |
Let the receiver process a SNMP GET subrequest. | |
virtual void | get_next_request (Request *, int) |
Let the receiver process a SNMP GETNEXT subrequest. | |
virtual int | commit_set_request (Request *, int) |
Let the receiver commit a SNMP SET subrequest. | |
virtual int | prepare_set_request (Request *, int &) |
Let the receiver prepare a SNMP SET subrequest. | |
virtual int | undo_set_request (Request *, int &) |
Let the receiver undo a SNMP SET subrequest. | |
virtual void | cleanup_set_request (Request *, int &) |
Free any resources allocated for a SET request (i.e., undo information). | |
virtual boolean | ready_for_service (Vbx *pvbs, int sz) |
Check whether the specified row is ready to set in service. | |
virtual MibTableRow * | add_row (const Oidx &) |
Add a row with the given index to the table. | |
virtual MibTableRow * | init_row (const Oidx &, Vbx *) |
Initialize a row with values. | |
virtual void | remove_row (const Oidx &) |
Remove a row with the given index from the table and call row_delete before. | |
virtual void | row_init (MibTableRow *, const Oidx &, MibTable *t=0) |
Is called after a new row has been initialized (i.e., after it has been loaded from persistent storage). | |
virtual void | row_added (MibTableRow *, const Oidx &, MibTable *t=0) |
Is called after a new row has been created and automatic index generation has taken place. | |
virtual void | row_delete (MibTableRow *, const Oidx &, MibTable *t=0) |
Is called before a row is deleted by MibTable. | |
virtual void | row_activated (MibTableRow *, const Oidx &, MibTable *t=0) |
Is called when a row is activated by a SET request setting the rowþs snmpRowStatus object to active(1). | |
virtual void | row_deactivated (MibTableRow *, const Oidx &, MibTable *t=0) |
Is called when a row is deactivated by a SET request setting the rowþs snmpRowStatus object to notInService(2). | |
virtual Oidx | get_next_avail_index () const |
Return the next available index value for the receiver table, that can be used be a manager to create a new row. | |
MibTableRow * | find_index (const Oidx &) const |
Find the row within the receiver table with a given index. | |
Oidx | index (const Oidx &) const |
Returns the index part of a given oid (relative to the receiver). | |
virtual boolean | is_index_valid (const Oidx &) const |
Check whether the given index is a valid index for the receiver table. | |
Oidx | base (const Oidx &) |
Returns the base of an oid. | |
virtual void | get_contents (Vbx **&, int &, int &, boolean=rowActive) |
Return all (active) rows as a two dimensional array of Vbx objects. | |
OidList< MibTableRow > * | rows () |
Return a pointer to the internal list of rows. | |
virtual List< MibTableRow > * | get_rows (boolean=rowActive) |
Return all (active) rows as a list of pointers to the corresponding MibTableRow instances. | |
virtual List< MibTableRow > * | get_rows_cloned (boolean=rowActive) |
Return all (active) rows as a list of pointers to the corresponding MibTableRow instances. | |
virtual List< MibTableRow > * | get_rows_cloned (const Oidx *, boolean=rowActive) |
Return those (active) rows as a list of pointers to the corresponding MibTableRow instances, of which the index starts with the given prefix. | |
virtual int | size () |
Return the size of the table meassured in rows. | |
virtual void | add_voter (MibTableVoter *) |
Add a MibTableVoter instance that listens for row status transition events and votes for or against commiting such a transition. | |
virtual void | remove_voter (MibTableVoter *) |
Remove a MibTableVoter listener. | |
virtual void | add_listener (MibTable *) |
Add a listener that will be informed about row additions or deletions. | |
virtual void | remove_listener (MibTable *) |
Remove a listener that no longer wants to be informed about row additions or deletions. | |
void | fire_row_changed (int, MibTableRow *, const Oidx &) |
Fire the row changed event to the receiver and all its listeners. | |
ListCursor< MibTable > * | get_listeners () |
Gets a cursor on the listeners for this table's row events. | |
boolean | has_listeners () const |
Checks whether this table has any listeners for row events. | |
virtual void | clear () |
Removes all rows from this table. | |
virtual void | reset () |
Resets the content of the table to its state right after construction. | |
virtual MibTableRow * | get_columns () |
Gets the columns (a.k.a. | |
MibLeaf * | find (const Oidx &) const |
Find a MibLeaf object of the receiver with a given oid. | |
virtual MibLeaf * | find_next (const Oidx &) |
Find the lexicographical successor MibLeaf object to a given oid. | |
MibLeaf * | find_prev (const Oidx &) |
Find the lexicographical predessor MibLeaf object to a given oid. | |
MibLeaf * | get (int, int) |
Return the MibLeaf object of the receiver at a given position. | |
virtual void | reinit () |
Reinitialize the table. | |
Protected Member Functions | |
void | init (const Oidx &, const index_info *, unsigned int) |
Initialize the receiver. | |
virtual boolean | could_ever_be_managed (const Oidx &, int &) |
Check if an object of a given oid could be created. | |
void | remove_obsolete_rows (OrderedList< Oidx > &confirmed) |
Remove all rows that are not in the given list. | |
virtual Oidx | find_succ (const Oidx &, Request *req=0) |
Return the successor of a given object identifier within the receiver's scope and the context of a given Request. | |
MibLeaf * | get_generator (const Oidx &) |
Return a pointer to the generator object of a given column. | |
virtual int | check_creation (Request *, int &) |
Test whether a row can be created succesfully using the RowStatus mechanism. | |
virtual boolean | ready (Vbx *pvbs, int sz, MibTableRow *row) |
Check whether the specified row is ready to set in service. | |
virtual void | get_required_columns (boolean *, Vbx *vbs=0) |
Determine the required columns of a row. | |
int | get_row_status (MibTableRow *) |
Get the value of the snmpRowStatus object of a given row. | |
int | set_row_status (MibTableRow *, int) |
Set the value of the snmpRowStatus object of a given row. | |
void | remove_unused_rows () |
Periodically remove all rows that are notReady for more than a given timeout (default is 5 minutes). | |
boolean | check_index (Oidx &, unsigned long, unsigned long) const |
Check an index for subidentifiers greater than 255. | |
virtual boolean | is_persistent (MibTableRow *) |
Check whether the given row should be serialized or not. | |
int | perform_voting (MibTableRow *, int, int) |
Let all voters vote for or against a row status transition. | |
Protected Attributes | |
Oidx | upper |
MibTableRow | generator |
OidList< MibTableRow > | content |
unsigned int | index_len |
index_info * | index_struc |
snmpRowStatus * | row_status |
Timer | row_timeout |
OrderedList< MibTableRow > | notready_rows |
OrderedList< MibTableRow > | delete_rows |
List< MibTable > | listeners |
List< MibTableVoter > | voters |
Friends | |
class | Mib |
class | snmpRowStatus |
MibTable::MibTable | ( | const MibTable & | ) |
Copy constructor.
MibTable::MibTable | ( | const Oidx & | ) |
Constructor with object identifier with single index object like string or oid with implied length.
o | the object identifier of the table, which has to be the oid of the the SMI table entry object (table.1). |
MibTable::MibTable | ( | const Oidx & | , | |
unsigned | int | |||
) |
Constructor with object identifier and single index object's index length (meassured in subidentifiers).
o | the object identifier of the table, which has to be the oid of the the SMI table entry object (table.1). | |
ilen | the length of the index meassured in subidentifiers. 0 represents a variable length string or oid index object. -1 represents a variable length string or oid index object with implied length. |
MibTable::MibTable | ( | const Oidx & | , | |
unsigned | int, | |||
boolean | ||||
) |
Constructor with object identifier and given fixed index length.
Additionally the automatic index object initialization can be activated.
o | - The object identifier of the table, which has to be the oid of the the SMI table entry object (table.1). | |
ilen | - The length of the index meassured in subidentifiers. | |
a | - If TRUE the automatic index object initialization is activated. |
MibTable::MibTable | ( | const Oidx & | , | |
const index_info * | , | |||
unsigned | int | |||
) |
Constructor with object identifier and given index structure.
In AGENT++ the structure of a table's index is given by an array of integer values. Each element represents an object of the index. A value of -1 represents a implied variable length string or oid. A value of 0 a variable length string or oid index object. A value greater than 0 determines the length of the index object meassured in subidentifiers.
o | the object identifier of the table, which has to be the oid of the the SMI table entry object (table.1). | |
index | an integer array. The length of the array corresponds to the number of objects in the INDEX clause. | |
size | the size of the above index array. |
virtual MibTable::~MibTable | ( | ) | [virtual] |
Destructor.
mib_type MibTable::type | ( | ) | const [inline, virtual] |
virtual MibEntryPtr MibTable::clone | ( | ) | [inline, virtual] |
virtual void MibTable::add_col | ( | MibLeaf * | ) | [virtual] |
Add a column to the receiver table.
l | - A pointer to a MibLeaf object which should be added to the columnar objects of the receiver. |
virtual void MibTable::add_col | ( | snmpRowStatus * | ) | [virtual] |
Add a row status column to the receiver table.
l | - A pointer to a snmpRowStatus object which should be added to the columnar objects of the receiver. |
virtual void MibTable::replace_col | ( | unsigned | int, | |
MibLeaf * | ||||
) | [virtual] |
Replace a column of the table.
columnIndex | the index of the column counted from 0. | |
newColumn | the new column MibLeaf instance. |
virtual boolean MibTable::serialize | ( | char *& | , | |
int & | ||||
) | [virtual] |
Serialize the values of the receiver table.
buf | - A pointer to byte stream buffer returned. | |
sz | - The size of the buffer returned. |
Reimplemented from MibEntry.
virtual boolean MibTable::deserialize | ( | char * | , | |
int & | ||||
) | [virtual] |
Read the value of the receiver from a byte stream.
buf | a pointer to the input byte stream. | |
sz | the size of the input buffer. On output it contains the size remaining unread in the input buffer. |
Reimplemented from MibEntry.
virtual OidxPtr MibTable::max_key | ( | ) | [virtual] |
Return the immediate successor of the greatest object identifier within the receiver's scope.
Reimplemented from MibEntry.
virtual void MibTable::update | ( | Request * | ) | [inline, virtual] |
This method is called by a Mib instance whenever it needs to know how many rows the receiver contains.
This method can be used to update the receiver before a request accessing the receiver is processed. Note: The method may be called once for each subrequest of the given request. So, it is the implementor's responsibility to check whether an update is needed or not. For example, the pointer to the last request could be saved within the receiver. Only if req is different from the last request pointer, an update will actually be performed.
req | the request that needs to update the receiver. |
virtual boolean MibTable::is_empty | ( | ) | [inline, virtual] |
Return whether the table is empty or not.
Reimplemented from MibEntry.
virtual int MibTable::set_value | ( | Request * | , | |
int | ||||
) | [virtual] |
Set a value of column in a row of the receiver table.
If the row does not exist, try to create one.
req | - A pointer to the whole SNMP GET request. | |
ind | - The index of the subrequest to be processed. |
virtual void MibTable::get_request | ( | Request * | , | |
int | ||||
) | [virtual] |
Let the receiver process a SNMP GET subrequest.
req | - A pointer to the whole SNMP GET request. | |
ind | - The index of the subrequest to be processed. |
Reimplemented from MibEntry.
virtual void MibTable::get_next_request | ( | Request * | , | |
int | ||||
) | [virtual] |
Let the receiver process a SNMP GETNEXT subrequest.
req | - A pointer to the whole SNMP GETNEXT request. | |
ind | - The index of the subrequest to be processed. |
Reimplemented from MibEntry.
virtual int MibTable::commit_set_request | ( | Request * | , | |
int | ||||
) | [virtual] |
Let the receiver commit a SNMP SET subrequest.
req | - A pointer to the whole SNMP SET request. | |
ind | - The index of the subrequest to be processed. |
Reimplemented from MibEntry.
virtual int MibTable::prepare_set_request | ( | Request * | , | |
int & | ||||
) | [virtual] |
Let the receiver prepare a SNMP SET subrequest.
req | - A pointer to the whole SNMP SET request. | |
ind | - The index of the subrequest to be processed. |
Reimplemented from MibEntry.
virtual int MibTable::undo_set_request | ( | Request * | , | |
int & | ||||
) | [virtual] |
Let the receiver undo a SNMP SET subrequest.
req | - A pointer to the whole SNMP SET request. | |
ind | - The index of the subrequest to be processed. |
Reimplemented from MibEntry.
virtual void MibTable::cleanup_set_request | ( | Request * | , | |
int & | ||||
) | [virtual] |
Free any resources allocated for a SET request (i.e., undo information).
req | a pointer to the SNMP SET request. | |
ind | the index of the subrequest to be processed. |
Reimplemented from MibEntry.
virtual boolean MibTable::ready_for_service | ( | Vbx * | pvbs, | |
int | sz | |||
) | [virtual] |
Check whether the specified row is ready to set in service.
This method is left empty for override by the API user.
pvbs | - A pointer to an array of Vbx objects containing the values and oids of the columns of a row to check. | |
sz | - The size of the array. |
Reimplemented in snmpTargetAddrEntry, VacmSecurityToGroupTable, VacmAccessTable, and VacmViewTreeFamilyTable.
virtual MibTableRow* MibTable::add_row | ( | const Oidx & | ) | [virtual] |
Add a row with the given index to the table.
by cloning the generator row and setting the oids accordingly. Then call row_added.
ind | The index of the new row. |
virtual MibTableRow* MibTable::init_row | ( | const Oidx & | , | |
Vbx * | ||||
) | [virtual] |
Initialize a row with values.
This method is typically called when a row is loaded from persistent storage.
index | the index of the row. | |
vbs | a pointer to an array of variable bindings that provides initial values for all columns in the newly created row. The size of the array must be the same as the size of the row. |
virtual void MibTable::remove_row | ( | const Oidx & | ) | [virtual] |
Remove a row with the given index from the table and call row_delete before.
ind | the index of the row. |
virtual void MibTable::row_init | ( | MibTableRow * | , | |
const Oidx & | , | |||
MibTable * | t = 0 | |||
) | [inline, virtual] |
Is called after a new row has been initialized (i.e., after it has been loaded from persistent storage).
row | a pointer to MibTableRow that has been created. | |
index | the index of the row. | |
source | a pointer to the source MibTable of the event, or 0 if the event is local. |
Reimplemented in VacmViewTreeFamilyTable.
virtual void MibTable::row_added | ( | MibTableRow * | , | |
const Oidx & | , | |||
MibTable * | t = 0 | |||
) | [inline, virtual] |
Is called after a new row has been created and automatic index generation has taken place.
row | A pointer to MibTableRow that has been created. | |
index | - The index of the row. | |
source | a pointer to the source MibTable of the event, or 0 if the event is local. |
Reimplemented in TimeStampTable, VacmSecurityToGroupTable, VacmAccessTable, and VacmViewTreeFamilyTable.
virtual void MibTable::row_delete | ( | MibTableRow * | , | |
const Oidx & | , | |||
MibTable * | t = 0 | |||
) | [inline, virtual] |
Is called before a row is deleted by MibTable.
row | A pointer to MibTableRow that will be deleted. | |
index | - The index of the row. | |
source | a pointer to the source MibTable of the event, or 0 if the event is local. |
Reimplemented in TimeStampTable, and VacmViewTreeFamilyTable.
virtual void MibTable::row_activated | ( | MibTableRow * | , | |
const Oidx & | , | |||
MibTable * | t = 0 | |||
) | [inline, virtual] |
Is called when a row is activated by a SET request setting the rowþs snmpRowStatus object to active(1).
row | - A pointer to MibTableRow that has been activated. | |
index | - The index of the activated row. | |
source | a pointer to the source MibTable of the event, or 0 if the event is local. |
Reimplemented in VacmViewTreeFamilyTable.
virtual void MibTable::row_deactivated | ( | MibTableRow * | , | |
const Oidx & | , | |||
MibTable * | t = 0 | |||
) | [inline, virtual] |
Is called when a row is deactivated by a SET request setting the rowþs snmpRowStatus object to notInService(2).
row | - A pointer to MibTableRow that has been deactivated. | |
index | - The index of the deactivated row. | |
source | a pointer to the source MibTable of the event, or 0 if the event is local. |
Reimplemented in VacmViewTreeFamilyTable.
virtual Oidx MibTable::get_next_avail_index | ( | ) | const [virtual] |
Return the next available index value for the receiver table, that can be used be a manager to create a new row.
MibTableRow* MibTable::find_index | ( | const Oidx & | ) | const |
Find the row within the receiver table with a given index.
ind | - The index to search for. |
Returns the index part of a given oid (relative to the receiver).
entry_oid | - The oid of an instance in the receiver table. |
virtual boolean MibTable::is_index_valid | ( | const Oidx & | ) | const [virtual] |
Check whether the given index is a valid index for the receiver table.
index | an Oidx instance. |
Returns the base of an oid.
(the entry oid without index and item index)
oid | - The oid that should be scoped to this tables base |
virtual void MibTable::get_contents | ( | Vbx **& | , | |
int & | , | |||
int & | , | |||
boolean | = rowActive | |||
) | [virtual] |
Return all (active) rows as a two dimensional array of Vbx objects.
If the receiver table does not have any snmpRowStatus column all rows are returned.
This method is synchronized on its receiver.
contents | a two dimensional array of Vbx objects returned. Memory is allocated if the pointer is NULL. Otherwise the rows and cols parameter must provide the size of the given array. | |
rows | the number of rows returned or the max rows capacitiy of the given array, respectively. | |
cols | the number of cols returned or the max cols capacitiy of the given array, respectively. | |
discriminator | if the receiver table has a snmpRowStatus, the discriminator selects the rows to be returned. Default is rowActive, which means all active rows are returned. If the discriminator is rowEnmpty(0), all rows are returned. |
OidList<MibTableRow>* MibTable::rows | ( | ) | [inline] |
Return a pointer to the internal list of rows.
This list operates directly of the tables data. Do not delete the returned pointer, as this would corrupt the table.
virtual List<MibTableRow>* MibTable::get_rows | ( | boolean | = rowActive |
) | [virtual] |
Return all (active) rows as a list of pointers to the corresponding MibTableRow instances.
If the receiver table does not have any snmpRowStatus column all rows are returned.
Call List::clear() method before its destructor to avoid deletion of the rows of this table.
discriminator | if the receiver table has a snmpRowStatus, the discriminator selects the rows to be returned. Default is rowActive, which means all active rows are returned. If the discriminator is rowEmpty(0), all rows are returned. |
virtual List<MibTableRow>* MibTable::get_rows_cloned | ( | boolean | = rowActive |
) | [virtual] |
Return all (active) rows as a list of pointers to the corresponding MibTableRow instances.
If the receiver table does not have any snmpRowStatus column all rows are returned.
This method is synchronized on its receiver.
discriminator | if the receiver table has a snmpRowStatus, the discriminator selects the rows to be returned. Default is rowActive, which means all active rows are returned. If the discriminator is rowEmpty(0), all rows are returned. |
virtual List<MibTableRow>* MibTable::get_rows_cloned | ( | const Oidx * | , | |
boolean | = rowActive | |||
) | [virtual] |
Return those (active) rows as a list of pointers to the corresponding MibTableRow instances, of which the index starts with the given prefix.
This method is synchronized on its receiver.
prefix | a pointer to an oid. If the pointer is 0 this method behaves like MibTable::get_rows_cloned(boolean). | |
discriminator | if the receiver table has a snmpRowStatus, the discriminator selects the rows to be returned. Default is rowActive, which means all active rows are returned. If the discriminator is rowEmpty(0), all rows are returned. |
virtual int MibTable::size | ( | ) | [virtual] |
Return the size of the table meassured in rows.
virtual void MibTable::add_voter | ( | MibTableVoter * | ) | [virtual] |
Add a MibTableVoter instance that listens for row status transition events and votes for or against commiting such a transition.
listener | a pointer to a MibTableVoter instance. |
virtual void MibTable::remove_voter | ( | MibTableVoter * | ) | [virtual] |
virtual void MibTable::add_listener | ( | MibTable * | ) | [virtual] |
Add a listener that will be informed about row additions or deletions.
Note: Since v3.5.8 listeners are no longer locked when fire_row_changed is executed. Instead, all listeners are locked when this table gets locked by Request::set_locked!
listener | a pointer to another instance of MibTable whose row_added, row_delete, row_activated, and row_deactivated methods will be called whenever the corresponding action is performed on this table. |
virtual void MibTable::remove_listener | ( | MibTable * | ) | [virtual] |
Remove a listener that no longer wants to be informed about row additions or deletions.
listener | a pointer to another instance of MibTable |
void MibTable::fire_row_changed | ( | int | , | |
MibTableRow * | , | |||
const Oidx & | ||||
) |
Fire the row changed event to the receiver and all its listeners.
Note: Since v3.5.8 this method no longer locks the listeners when calling their methods. See also Request::set_locked.
event | describes the event that occured: rowCreateAndGo, rowCreateAndWait for row_added, rowActive for row_activated, rowNotInService for row_deactivated, and rowDestroy fro row_delete. | |
row | a pointer to the MibTableRow instance to be changed. | |
index | the index of the above row. |
ListCursor<MibTable>* MibTable::get_listeners | ( | ) | [inline] |
Gets a cursor on the listeners for this table's row events.
This method is not synchronized.
boolean MibTable::has_listeners | ( | ) | const [inline] |
Checks whether this table has any listeners for row events.
virtual void MibTable::clear | ( | ) | [virtual] |
virtual void MibTable::reset | ( | ) | [inline, virtual] |
Resets the content of the table to its state right after construction.
By default this method calls MibTable::clear() to remove all rows.
Reimplemented from MibEntry.
Reimplemented in StorageTable, and VacmViewTreeFamilyTable.
virtual MibTableRow* MibTable::get_columns | ( | ) | [virtual] |
Gets the columns (a.k.a.
generator row) definitions for this table.
Find a MibLeaf object of the receiver with a given oid.
o | - The oid of the object to find. |
Find the lexicographical successor MibLeaf object to a given oid.
o | - An oid. |
Find the lexicographical predessor MibLeaf object to a given oid.
o | - An oid. |
MibLeaf* MibTable::get | ( | int | , | |
int | ||||
) |
virtual void MibTable::reinit | ( | ) | [inline, virtual] |
Reinitialize the table.
By default, this method does nothing. The method is called when a Mib instance needs to reinitialize its objects, for example, if a subagent needs to reconnect to its master agent.
void MibTable::init | ( | const Oidx & | , | |
const index_info * | , | |||
unsigned | int | |||
) | [protected] |
Initialize the receiver.
o | - The initialize object identifer of the receiver. | |
ilen | - The fixed index length, or VARIABLE_INDEX_LENGTH if the index length is variable. | |
a | - If TRUE the automatic index object initialization is activated. |
virtual boolean MibTable::could_ever_be_managed | ( | const Oidx & | , | |
int & | ||||
) | [protected, virtual] |
Check if an object of a given oid could be created.
o | the oid to be checked. | |
result | returns the SNMP error code, which explains why creation could not be performed. Possible values are: SNMP_ERROR_NO_CREATION and SNMP_ERROR_NOT_WRITEABLE |
Reimplemented in VacmSecurityToGroupTable, VacmAccessTable, and VacmViewTreeFamilyTable.
void MibTable::remove_obsolete_rows | ( | OrderedList< Oidx > & | confirmed | ) | [protected] |
Remove all rows that are not in the given list.
confirmed_rows | - A list of row indecies of rows which should not be removed from the receiver. |
Return the successor of a given object identifier within the receiver's scope and the context of a given Request.
SYNCHRONIZED
oid | an object identifier | |
request | a pointer to a Request instance. |
Reimplemented from MibEntry.
Return a pointer to the generator object of a given column.
(The generator object of a column is the not accessible object a the top of each row - the master copy)
o | - The oid of an MibLeaf instance of the receiver. |
virtual int MibTable::check_creation | ( | Request * | , | |
int & | ||||
) | [protected, virtual] |
Test whether a row can be created succesfully using the RowStatus mechanism.
req | - A pointer to the whole SNMP SET request. | |
ind | - The index of the subrequest to be processed. |
Reimplemented in SimMibTable.
virtual boolean MibTable::ready | ( | Vbx * | pvbs, | |
int | sz, | |||
MibTableRow * | row | |||
) | [protected, virtual] |
Check whether the specified row is ready to set in service.
pvbs | a pointer to an array of Vbx objects containing the (possible new) values and oids of the columns of a row to check. | |
sz | the size of the array. | |
row | a pointer to the original row. If this is a new row, it is pointing to a MibTableRow that is filled with the new values, but is not inserted into the table. |
virtual void MibTable::get_required_columns | ( | boolean * | , | |
Vbx * | vbs = 0 | |||
) | [protected, virtual] |
Determine the required columns of a row.
required | an array of at least the size of each receiver's row. | |
vbs | an array of variable bindings of at least the size of a row. It returns the default values of that row. If vbs is 0 no default values are returned. |
int MibTable::get_row_status | ( | MibTableRow * | ) | [protected] |
Get the value of the snmpRowStatus object of a given row.
row | - A row of the receiver. |
int MibTable::set_row_status | ( | MibTableRow * | , | |
int | ||||
) | [protected] |
Set the value of the snmpRowStatus object of a given row.
row | - A row of the receiver. | |
status | - The new value for the snmpRowStatus object. |
void MibTable::remove_unused_rows | ( | ) | [protected] |
Periodically remove all rows that are notReady for more than a given timeout (default is 5 minutes).
For tables that have no row status, this can also be used for deferred row deletion: simply add the row to delete to the notread_rows list and let Mib::cleanup delete the rows by calling this method.
Note: a row cannot be set from notInService or active to notReady
boolean MibTable::check_index | ( | Oidx & | , | |
unsigned | long, | |||
unsigned | long | |||
) | const [protected] |
Check an index for subidentifiers greater than 255.
index | ||
begin | ||
end |
virtual boolean MibTable::is_persistent | ( | MibTableRow * | ) | [inline, protected, virtual] |
Check whether the given row should be serialized or not.
row | a MibTableRow instance. |
Reimplemented in StorageTable.
int MibTable::perform_voting | ( | MibTableRow * | , | |
int | , | |||
int | ||||
) | [protected] |
Let all voters vote for or against a row status transition.
row | a pointer to the MibTableRow to be changed. | |
currentStatus | the row's current status. | |
requestedStatus | the row's requested new status. |
friend class Mib [friend] |
friend class snmpRowStatus [friend] |
Reimplemented in StorageTable.
Oidx MibTable::upper [protected] |
MibTableRow MibTable::generator [protected] |
OidList<MibTableRow> MibTable::content [protected] |
unsigned int MibTable::index_len [protected] |
index_info* MibTable::index_struc [protected] |
snmpRowStatus* MibTable::row_status [protected] |
Timer MibTable::row_timeout [protected] |
OrderedList<MibTableRow> MibTable::notready_rows [protected] |
OrderedList<MibTableRow> MibTable::delete_rows [protected] |
List<MibTable> MibTable::listeners [protected] |
List<MibTableVoter> MibTable::voters [protected] |