|
| ||||||||||||||||
The Update Queue has is conceptually a single writer multi-reader queue. It is used to store state for triggered updates and may be used unsolicited responses (routing table announcements).
| typedef UpdateQueueReader<A> Reader | Reader |
[protected]
| typedef ref_ptr<Reader> ReadIterator | ReadIterator |
| typedef RouteEntryRef<A> RouteUpdate | RouteUpdate |
| UpdateQueue ()
| UpdateQueue |
| ~UpdateQueue ()
| ~UpdateQueue |
| void push_back (const RouteUpdate& ru)
| push_back |
| void flush ()
| flush |
Remove all queued entries and reset all read iterators to the front of the queue.
| ReadIterator create_reader ()
| create_reader |
Create a read iterator. These are reference counted entities that need to be stored in order to operate. The newly created reader is set to the end of the update queue.
| void destroy_reader (ReadIterator& r)
| destroy_reader |
Destroy read iterator. This method detaches the iterator from the update queue. Use of the iterator after this call is unsafe.
| bool reader_valid (const ReadIterator& r)
| reader_valid |
Check ReadIterator's validity.
Parameters:
| r | reader to be checked. |
Returns: true if r is an active read iterator, false if iterator does not belong to this instance or has been destroyed.
| const RouteEntry<A>* next (ReadIterator& r)
| next |
Increment iterator and return pointer to entry if available.
Returns: A pointer to a RouteEntry if available, 0 otherwise.
| const RouteEntry<A>* get (ReadIterator& r)
| get |
[const]
Get the RouteEntry associated with the read iterator.
Returns: A pointer to a RouteEntry if available, 0 otherwise.
| void ffwd (ReadIterator& r)
| ffwd |
Advance read iterator to end of update queue. Calls to next and get will return 0 until further updates occur.
| void rwd (ReadIterator& r)
| rwd |
Move read iterator to first entry of update queue.
| uint32_t updates_queued ()
| updates_queued |
[const]
Return number of updates held. Note: this may be more than are available for reading since there is internal buffering and UpdateQueue iterators attach at the end of the UpdateQueue.
Returns: number of updates queued.
| UpdateQueueImpl<A>* _impl | _impl |
[protected]