AGENT++  4.0.3
Public Member Functions | Protected Member Functions | Friends | List of all members
StorageTable Class Reference

The StorageTable class represents tables that have a StorageType row. More...

#include <snmp_textual_conventions.h>

Inheritance diagram for StorageTable:
MibTable MibEntry MibTableVoter ThreadManager Synchronized snmpNotifyEntry snmpNotifyFilterEntry snmpNotifyFilterProfileEntry snmpProxyEntry snmpTargetAddrEntry snmpTargetParamsEntry VacmAccessTable VacmSecurityToGroupTable VacmViewTreeFamilyTable

Public Member Functions

 StorageTable (const StorageTable &)
 Copy constructor.
 
 StorageTable (const Oidx &)
 Constructor with object identifier with single index object like string or oid with implied length.
 
 StorageTable (const Oidx &, unsigned int)
 Constructor with object identifier and single index object's index length (meassured in subidentifiers).
 
 StorageTable (const Oidx &, unsigned int, bool)
 Constructor with object identifier and given fixed index length.
 
 StorageTable (const Oidx &, const index_info *, unsigned int)
 Constructor with object identifier and given index structure.
 
virtual ~StorageTable ()
 Destructor.
 
virtual void add_storage_col (StorageType *)
 Add the StorageType column to the table.
 
void set_storage_type (MibTableRow *, int)
 Set storage type of the specified row.
 
virtual void reset ()
 Removes all rows that are not permanent and not read-only.
 
- Public Member Functions inherited from MibTable
 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 &, int)
 Constructor with object identifier and single index object's index length (meassured in subidentifiers).
 
 MibTable (const Oidx &, int, bool)
 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 bool serialize (char *&, int &)
 Serialize the values of the receiver table.
 
virtual bool 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 bool 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 bool ready_for_service (Vbx *pvbs, int sz)
 Check whether the specified row is ready to set in service.
 
virtual MibTableRowadd_row (const Oidx &)
 Add a row with the given index to the table.
 
virtual MibTableRowinit_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.
 
MibTableRowfind_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 bool 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 &, int=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 (int=rowActive)
 Return all (active) rows as a list of pointers to the corresponding MibTableRow instances.
 
virtual List< MibTableRow > * get_rows_cloned (int=rowActive)
 Return all (active) rows as a list of pointers to the corresponding MibTableRow instances.
 
virtual List< MibTableRow > * get_rows_cloned (const Oidx *, int=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.
 
bool has_listeners () const
 Checks whether this table has any listeners for row events.
 
virtual void clear ()
 Removes all rows from this table.
 
virtual MibTableRowget_columns ()
 Gets the columns (a.k.a.
 
MibLeaffind (const Oidx &) const
 Find a MibLeaf object of the receiver with a given oid.
 
virtual MibLeaffind_next (const Oidx &)
 Find the lexicographical successor MibLeaf object to a given oid.
 
MibLeaffind_prev (const Oidx &)
 Find the lexicographical predessor MibLeaf object to a given oid.
 
MibLeafget (int, int)
 Return the MibLeaf object of the receiver at a given position.
 
virtual void reinit ()
 Reinitialize the table.
 
- Public Member Functions inherited from MibEntry
 MibEntry ()
 Default constructor.
 
 MibEntry (const Oidx &, mib_access)
 Construct a MibEntry instance with a given object identifier and maximum access rights.
 
 MibEntry (const MibEntry &)
 Copy constructor.
 
virtual ~MibEntry ()
 Destructor.
 
virtual void load_from_file (const char *)
 Load the value(s) of the receiver node from a file.
 
virtual void save_to_file (const char *)
 Save the value(s) of the receiver node to a file.
 
virtual void notify_change (const Oidx &, mib_change)
 Notify all registered nodes of changes to an object managed by the receiver node.
 
virtual void register_for_notifications (MibEntry *)
 Register an MibEntry object to receive notifications about changes of the receiver node.
 
virtual void add_change_notification (MibEntry *e)
 Wrapper function for register_for_notifications.
 
virtual void change_notification (const Oidx &, mib_change)
 Receive a notification about changes to a managed object.
 
OidxPtr key ()
 Return a pointer to the key (object identifier) of the receiver.
 
virtual mib_access get_access ()
 Return the maximum access rights for the managed object represented by the receiver node.
 
virtual bool is_volatile ()
 Check whether the entry is volatile or not.
 
int operator< (const MibEntry &) const
 
int operator> (const MibEntry &) const
 
int operator== (const MibEntry &) const
 
int operator< (const Oidx &) const
 
int operator> (const Oidx &) const
 
int operator<= (const Oidx &) const
 
int operator>= (const Oidx &) const
 
int operator== (const Oidx &) const
 
- Public Member Functions inherited from ThreadManager
 ThreadManager ()
 Default constructor.
 
virtual ~ThreadManager ()
 Destructor.
 
void start_synch ()
 Start synchronized execution.
 
void end_synch ()
 End synchronized execution.
 
- Public Member Functions inherited from Synchronized
 Synchronized ()
 
 ~Synchronized ()
 
void wait ()
 Causes current thread to wait until another thread invokes the notify() method or the notifyAll() method for this object.
 
bool wait (unsigned long timeout)
 Causes current thread to wait until either another thread invokes the notify() method or the notifyAll() method for this object, or a specified amount of time has elapsed.
 
void notify ()
 Wakes up a single thread that is waiting on this object's monitor.
 
void notify_all ()
 Wakes up all threads that are waiting on this object's monitor.
 
bool lock ()
 Enter a critical section.
 
TryLockResult trylock ()
 Try to enter a critical section.
 
bool unlock ()
 Leave a critical section.
 
- Public Member Functions inherited from MibTableVoter
 MibTableVoter ()
 
virtual ~MibTableVoter ()
 
virtual int is_transition_ok (MibTable *, MibTableRow *, const Oidx &, int, int)
 Check whether a transition from an old to a new RowStatus value is allowed.
 

Protected Member Functions

virtual bool is_persistent (MibTableRow *)
 Check whether the given row should be serialized or not.
 
- Protected Member Functions inherited from MibTable
void init (const Oidx &, const index_info *, unsigned int)
 Initialize the receiver.
 
virtual bool 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.
 
MibLeafget_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 bool ready (Vbx *pvbs, int sz, MibTableRow *row)
 Check whether the specified row is ready to set in service.
 
virtual void get_required_columns (bool *, 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).
 
bool check_index (Oidx &, unsigned long, unsigned long) const
 Check an index for subidentifiers greater than 255.
 
int perform_voting (MibTableRow *, int, int)
 Let all voters vote for or against a row status transition.
 
- Protected Member Functions inherited from MibEntry
void set_oid (const Oidx &)
 Set the object identifier of the receiver node.
 

Friends

class Mib
 
class snmpRowStatus
 

Additional Inherited Members

- Public Types inherited from Synchronized
enum  TryLockResult { LOCKED = 1, BUSY = 0, OWNED = -1 }
 
- Static Public Member Functions inherited from ThreadManager
static void start_global_synch ()
 Start global synchronized execution.
 
static void end_global_synch ()
 End global synchronized execution.
 
- Protected Attributes inherited from MibTable
Oidx upper
 
MibTableRow generator
 
OidList< MibTableRowcontent
 
unsigned int index_len
 
index_infoindex_struc
 
snmpRowStatusrow_status
 
Timer row_timeout
 
OrderedList< MibTableRownotready_rows
 
OrderedList< MibTableRowdelete_rows
 
List< MibTablelisteners
 
List< MibTableVotervoters
 

Detailed Description

The StorageTable class represents tables that have a StorageType row.

It provides the functionality to store the table's content permanently (on disk) and retrieve it again when the table is instanciated again.

Author
Frank Fock
Version
3.5.22

Constructor & Destructor Documentation

StorageTable::StorageTable ( const StorageTable )

Copy constructor.

StorageTable::StorageTable ( const Oidx )

Constructor with object identifier with single index object like string or oid with implied length.

Parameters
othe object identifier of the table, which has to be the oid of the the SMI table entry object (table.1).
StorageTable::StorageTable ( const Oidx ,
unsigned  int 
)

Constructor with object identifier and single index object's index length (meassured in subidentifiers).

Parameters
othe object identifier of the table, which has to be the oid of the the SMI table entry object (table.1).
ilenthe 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.
StorageTable::StorageTable ( const Oidx ,
unsigned  int,
bool   
)

Constructor with object identifier and given fixed index length.

Additionally the automatic index object initialization can be activated.

Parameters
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.
StorageTable::StorageTable ( 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.

Parameters
othe object identifier of the table, which has to be the oid of the the SMI table entry object (table.1).
indexan integer array. The length of the array corresponds to the number of objects in the INDEX clause.
indexLengthnumber of elements in the index array.
virtual StorageTable::~StorageTable ( )
virtual

Destructor.

Member Function Documentation

virtual void StorageTable::add_storage_col ( StorageType )
virtual

Add the StorageType column to the table.

Parameters
col- A pointer to a storageType object which should be added to the columnar objects of the receiver.
Note
A table can only have one storageType columnar object.
virtual bool StorageTable::is_persistent ( MibTableRow )
protectedvirtual

Check whether the given row should be serialized or not.

Return TRUE if the given row has a volatile class StorageType.

Parameters
rowa MibTableRow instance.
Returns
TRUE if the row should be stored persistently, FALSE otherwise

Reimplemented from MibTable.

virtual void StorageTable::reset ( )
virtual

Removes all rows that are not permanent and not read-only.

Reimplemented from MibTable.

Reimplemented in VacmViewTreeFamilyTable.

void StorageTable::set_storage_type ( MibTableRow ,
int   
)

Set storage type of the specified row.

Parameters
rowa pointer to a MibTableRow instance of this table.
storageTypea storage type value (1-5).

Friends And Related Function Documentation

friend class Mib
friend
friend class snmpRowStatus
friend

The documentation for this class was generated from the following file: