xorp

NotifyQueue Class Reference

Queue of route event notifications. More...

#include <register_server.hh>

List of all members.

Public Types

typedef XorpCallback1< void,
const XrlError & >::RefPtr 
XrlCompleteCB

Public Member Functions

 NotifyQueue (const string &module_name)
 NotifyQueue constructor.
void add_entry (NotifyQueueEntry *e)
 Add an notification entry to the queue.
void send_next ()
 Send the next entry in the queue to this queue's XRL target.
void flush (ResponseSender *response_sender)
 Flush is an indication to the queue that the changes since the last flush can be checked for consolidation.
void xrl_done (const XrlError &e)
 XRL transmit complete callback.

Private Attributes

string _module_name
list< NotifyQueueEntry * > _queue
bool _active
ResponseSender_response_sender

Detailed Description

Queue of route event notifications.

A NotfiyQueue holds a queue of route event notifications waiting transmission to the XORP process that registered interest in route changes that affected one or more routes. When a lot of routes change, we need to queue the changes because we may generate them faster than the recipient can handle being told about them.


Constructor & Destructor Documentation

NotifyQueue::NotifyQueue ( const string &  module_name)

NotifyQueue constructor.

Parameters:
module_namethe XRL module target name for the process that this queue holds notifications for.

Member Function Documentation

void NotifyQueue::add_entry ( NotifyQueueEntry e)

Add an notification entry to the queue.

Parameters:
ethe notification entry to be queued.
void NotifyQueue::flush ( ResponseSender response_sender)

Flush is an indication to the queue that the changes since the last flush can be checked for consolidation.

Several add_entry events might occur in rapid succession affecting the same route. A flush indicates that it is OK to start sending this batch of changes (and to consolidate those changes to avoid thrashing, but we don't currently do this).

void NotifyQueue::xrl_done ( const XrlError e)

XRL transmit complete callback.

We use this to cause the next item in the queue to be sent.

Parameters:
ethe XRL completion status code.

The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs Enumerations