AGENT++  4.0.3
Public Member Functions | Protected Attributes | List of all members
TimeStampTable Class Reference

This class represents tables that are associated with a TimeStamp instance that is updated whenever the tables changes. More...

#include <snmp_textual_conventions.h>

Inheritance diagram for TimeStampTable:
MibTable MibEntry MibTableVoter ThreadManager Synchronized sysOREntry

Public Member Functions

 TimeStampTable (const Oidx &, const index_info *, unsigned int, TimeStamp *)
 Constructor with object identifier and given index structure.
 
virtual ~TimeStampTable ()
 
virtual void row_added (MibTableRow *, const Oidx &, MibTable *)
 Is called after a new row has been created and automatic index generation has taken place.
 
virtual void row_delete (MibTableRow *, const Oidx &, MibTable *)
 Is called before a row is deleted by MibTable.
 
virtual void updated ()
 This method should be called whenever the reciever is changed, except when a row is added or deleted (row_added and row_deleted already call updated())
 
- 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_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 void reset ()
 Resets the content of the table to its state right after construction.
 
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 Attributes

TimeStamplastChange
 
- 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
 
- Protected Attributes inherited from MibEntry
Oidx oid
 
mib_access access
 
List< MibEntrynotifies
 

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 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.
 
virtual bool 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.
 

Detailed Description

This class represents tables that are associated with a TimeStamp instance that is updated whenever the tables changes.

Author
Frank Fock
Version
3.5.7

Constructor & Destructor Documentation

TimeStampTable::TimeStampTable ( const Oidx ,
const index_info ,
unsigned  int,
TimeStamp  
)

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.
timeStampa pointer to a TimeStamp instance.
virtual TimeStampTable::~TimeStampTable ( )
virtual

Member Function Documentation

virtual void TimeStampTable::row_added ( MibTableRow ,
const Oidx ,
MibTable t 
)
virtual

Is called after a new row has been created and automatic index generation has taken place.

Parameters
rowA pointer to MibTableRow that has been created.
index- The index of the row.
sourcea pointer to the source MibTable of the event, or 0 if the event is local.

Reimplemented from MibTable.

virtual void TimeStampTable::row_delete ( MibTableRow ,
const Oidx ,
MibTable t 
)
virtual

Is called before a row is deleted by MibTable.

Parameters
rowA pointer to MibTableRow that will be deleted.
index- The index of the row.
sourcea pointer to the source MibTable of the event, or 0 if the event is local.

Reimplemented from MibTable.

virtual void TimeStampTable::updated ( )
virtual

This method should be called whenever the reciever is changed, except when a row is added or deleted (row_added and row_deleted already call updated())

Member Data Documentation

TimeStamp* TimeStampTable::lastChange
protected

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