OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
IFMapUpdateQueue Class Reference

#include <ifmap_update_queue.h>

Collaboration diagram for IFMapUpdateQueue:

Public Types

typedef
boost::intrusive::member_hook
< IFMapListEntry,
boost::intrusive::list_member_hook
<>,&IFMapListEntry::node
MemberHook
 
typedef boost::intrusive::list
< IFMapListEntry, MemberHook
List
 
typedef std::map< int,
IFMapMarker * > 
MarkerMap
 

Public Member Functions

 IFMapUpdateQueue (IFMapServer *server)
 
 ~IFMapUpdateQueue ()
 
bool Enqueue (IFMapUpdate *update)
 
void Dequeue (IFMapUpdate *update)
 
IFMapListEntryNext (IFMapListEntry *current)
 
IFMapListEntryPrevious (IFMapListEntry *current)
 
IFMapListEntryGetLast ()
 
void MoveMarkerBefore (IFMapMarker *marker, IFMapListEntry *current)
 
void MoveMarkerAfter (IFMapMarker *marker, IFMapListEntry *current)
 
IFMapMarkerMarkerSplitBefore (IFMapMarker *marker, IFMapListEntry *current, const BitSet &msplit)
 
IFMapMarkerMarkerSplitAfter (IFMapMarker *marker, IFMapListEntry *current, const BitSet &msplit)
 
void MarkerMerge (IFMapMarker *dst, IFMapMarker *src, const BitSet &mmove)
 
void Join (int bit)
 
void Leave (int bit)
 
IFMapMarkerGetMarker (int bit)
 
bool empty () const
 
IFMapMarkertail_marker ()
 
int size () const
 
void PrintQueue ()
 

Private Member Functions

void SetSequence (IFMapListEntry *item)
 
void PushbackIntoList (IFMapListEntry *item)
 
void InsertIntoListBefore (IFMapListEntry *ptr, IFMapListEntry *item)
 
void InsertIntoListAfter (IFMapListEntry *ptr, IFMapListEntry *item)
 
void EraseFromList (IFMapListEntry *item)
 
void ClearAndDisposeList ()
 
IFMapMarkerMarkerSplit (IFMapMarker *marker, IFMapListEntry *current, const BitSet &msplit, bool before)
 

Private Attributes

List list_
 
MarkerMap marker_map_
 
IFMapMarker tail_marker_
 
IFMapServerserver_
 
uint64_t sequence_
 

Static Private Attributes

static const uint64_t NULL_SEQUENCE = 0
 

Friends

class ShowIFMapUpdateQueue
 

Detailed Description

Definition at line 13 of file ifmap_update_queue.h.

Member Typedef Documentation

typedef boost::intrusive::list<IFMapListEntry, MemberHook> IFMapUpdateQueue::List

Definition at line 20 of file ifmap_update_queue.h.

typedef std::map<int, IFMapMarker *> IFMapUpdateQueue::MarkerMap

Definition at line 22 of file ifmap_update_queue.h.

typedef boost::intrusive::member_hook< IFMapListEntry, boost::intrusive::list_member_hook<>, &IFMapListEntry::node > IFMapUpdateQueue::MemberHook

Definition at line 19 of file ifmap_update_queue.h.

Constructor & Destructor Documentation

IFMapUpdateQueue::IFMapUpdateQueue ( IFMapServer server)
explicit

Definition at line 55 of file ifmap_update_queue.cc.

Here is the call graph for this function:

IFMapUpdateQueue::~IFMapUpdateQueue ( )

Definition at line 70 of file ifmap_update_queue.cc.

Here is the call graph for this function:

Member Function Documentation

void IFMapUpdateQueue::ClearAndDisposeList ( )
private

Definition at line 66 of file ifmap_update_queue.cc.

void IFMapUpdateQueue::Dequeue ( IFMapUpdate update)

Definition at line 85 of file ifmap_update_queue.cc.

Here is the call graph for this function:

bool IFMapUpdateQueue::empty ( ) const

Definition at line 246 of file ifmap_update_queue.cc.

bool IFMapUpdateQueue::Enqueue ( IFMapUpdate update)

Definition at line 75 of file ifmap_update_queue.cc.

Here is the call graph for this function:

void IFMapUpdateQueue::EraseFromList ( IFMapListEntry item)
private

Definition at line 50 of file ifmap_update_queue.cc.

Here is the call graph for this function:

IFMapListEntry * IFMapUpdateQueue::GetLast ( )

Definition at line 230 of file ifmap_update_queue.cc.

IFMapMarker * IFMapUpdateQueue::GetMarker ( int  bit)

Definition at line 89 of file ifmap_update_queue.cc.

void IFMapUpdateQueue::InsertIntoListAfter ( IFMapListEntry ptr,
IFMapListEntry item 
)
private

Definition at line 43 of file ifmap_update_queue.cc.

Here is the call graph for this function:

void IFMapUpdateQueue::InsertIntoListBefore ( IFMapListEntry ptr,
IFMapListEntry item 
)
private

Definition at line 35 of file ifmap_update_queue.cc.

Here is the call graph for this function:

void IFMapUpdateQueue::Join ( int  bit)

Definition at line 97 of file ifmap_update_queue.cc.

Here is the call graph for this function:

void IFMapUpdateQueue::Leave ( int  bit)

Definition at line 103 of file ifmap_update_queue.cc.

Here is the call graph for this function:

void IFMapUpdateQueue::MarkerMerge ( IFMapMarker dst,
IFMapMarker src,
const BitSet mmove 
)

Definition at line 137 of file ifmap_update_queue.cc.

Here is the call graph for this function:

IFMapMarker * IFMapUpdateQueue::MarkerSplit ( IFMapMarker marker,
IFMapListEntry current,
const BitSet msplit,
bool  before 
)
private

Definition at line 160 of file ifmap_update_queue.cc.

Here is the call graph for this function:

IFMapMarker * IFMapUpdateQueue::MarkerSplitAfter ( IFMapMarker marker,
IFMapListEntry current,
const BitSet msplit 
)

Definition at line 195 of file ifmap_update_queue.cc.

Here is the call graph for this function:

IFMapMarker * IFMapUpdateQueue::MarkerSplitBefore ( IFMapMarker marker,
IFMapListEntry current,
const BitSet msplit 
)

Definition at line 187 of file ifmap_update_queue.cc.

Here is the call graph for this function:

void IFMapUpdateQueue::MoveMarkerAfter ( IFMapMarker marker,
IFMapListEntry current 
)

Definition at line 213 of file ifmap_update_queue.cc.

Here is the call graph for this function:

void IFMapUpdateQueue::MoveMarkerBefore ( IFMapMarker marker,
IFMapListEntry current 
)

Definition at line 204 of file ifmap_update_queue.cc.

Here is the call graph for this function:

IFMapListEntry * IFMapUpdateQueue::Next ( IFMapListEntry current)

Definition at line 238 of file ifmap_update_queue.cc.

IFMapListEntry * IFMapUpdateQueue::Previous ( IFMapListEntry current)

Definition at line 221 of file ifmap_update_queue.cc.

void IFMapUpdateQueue::PrintQueue ( )

Definition at line 255 of file ifmap_update_queue.cc.

Here is the call graph for this function:

void IFMapUpdateQueue::PushbackIntoList ( IFMapListEntry item)
private

Definition at line 28 of file ifmap_update_queue.cc.

Here is the call graph for this function:

void IFMapUpdateQueue::SetSequence ( IFMapListEntry item)
private

Definition at line 22 of file ifmap_update_queue.cc.

Here is the call graph for this function:

int IFMapUpdateQueue::size ( ) const

Definition at line 251 of file ifmap_update_queue.cc.

IFMapMarker* IFMapUpdateQueue::tail_marker ( )
inline

Definition at line 87 of file ifmap_update_queue.h.

Friends And Related Function Documentation

friend class ShowIFMapUpdateQueue
friend

Definition at line 94 of file ifmap_update_queue.h.

Member Data Documentation

List IFMapUpdateQueue::list_
private

Definition at line 96 of file ifmap_update_queue.h.

MarkerMap IFMapUpdateQueue::marker_map_
private

Definition at line 97 of file ifmap_update_queue.h.

const uint64_t IFMapUpdateQueue::NULL_SEQUENCE = 0
staticprivate

Definition at line 95 of file ifmap_update_queue.h.

uint64_t IFMapUpdateQueue::sequence_
private

Definition at line 100 of file ifmap_update_queue.h.

IFMapServer* IFMapUpdateQueue::server_
private

Definition at line 99 of file ifmap_update_queue.h.

IFMapMarker IFMapUpdateQueue::tail_marker_
private

Definition at line 98 of file ifmap_update_queue.h.


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