OpenSDN source code
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::nodeMemberHook
 
typedef boost::intrusive::list< IFMapListEntry, MemberHookList
 
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

◆ List

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

Definition at line 20 of file ifmap_update_queue.h.

◆ MarkerMap

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

Definition at line 22 of file ifmap_update_queue.h.

◆ MemberHook

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::IFMapUpdateQueue ( IFMapServer server)
explicit

Definition at line 55 of file ifmap_update_queue.cc.

Here is the call graph for this function:

◆ ~IFMapUpdateQueue()

IFMapUpdateQueue::~IFMapUpdateQueue ( )

Definition at line 70 of file ifmap_update_queue.cc.

Here is the call graph for this function:

Member Function Documentation

◆ ClearAndDisposeList()

void IFMapUpdateQueue::ClearAndDisposeList ( )
private

Definition at line 66 of file ifmap_update_queue.cc.

◆ Dequeue()

void IFMapUpdateQueue::Dequeue ( IFMapUpdate update)

Definition at line 85 of file ifmap_update_queue.cc.

Here is the call graph for this function:

◆ empty()

bool IFMapUpdateQueue::empty ( ) const

Definition at line 246 of file ifmap_update_queue.cc.

◆ Enqueue()

bool IFMapUpdateQueue::Enqueue ( IFMapUpdate update)

Definition at line 75 of file ifmap_update_queue.cc.

Here is the call graph for this function:

◆ EraseFromList()

void IFMapUpdateQueue::EraseFromList ( IFMapListEntry item)
private

Definition at line 50 of file ifmap_update_queue.cc.

Here is the call graph for this function:

◆ GetLast()

IFMapListEntry * IFMapUpdateQueue::GetLast ( )

Definition at line 230 of file ifmap_update_queue.cc.

◆ GetMarker()

IFMapMarker * IFMapUpdateQueue::GetMarker ( int  bit)

Definition at line 89 of file ifmap_update_queue.cc.

◆ InsertIntoListAfter()

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:

◆ InsertIntoListBefore()

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:

◆ Join()

void IFMapUpdateQueue::Join ( int  bit)

Definition at line 97 of file ifmap_update_queue.cc.

Here is the call graph for this function:

◆ Leave()

void IFMapUpdateQueue::Leave ( int  bit)

Definition at line 103 of file ifmap_update_queue.cc.

Here is the call graph for this function:

◆ MarkerMerge()

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:

◆ MarkerSplit()

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:

◆ MarkerSplitAfter()

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:

◆ MarkerSplitBefore()

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:

◆ MoveMarkerAfter()

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:

◆ MoveMarkerBefore()

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:

◆ Next()

IFMapListEntry * IFMapUpdateQueue::Next ( IFMapListEntry current)

Definition at line 238 of file ifmap_update_queue.cc.

◆ Previous()

IFMapListEntry * IFMapUpdateQueue::Previous ( IFMapListEntry current)

Definition at line 221 of file ifmap_update_queue.cc.

◆ PrintQueue()

void IFMapUpdateQueue::PrintQueue ( )

Definition at line 255 of file ifmap_update_queue.cc.

Here is the call graph for this function:

◆ PushbackIntoList()

void IFMapUpdateQueue::PushbackIntoList ( IFMapListEntry item)
private

Definition at line 28 of file ifmap_update_queue.cc.

Here is the call graph for this function:

◆ SetSequence()

void IFMapUpdateQueue::SetSequence ( IFMapListEntry item)
private

Definition at line 22 of file ifmap_update_queue.cc.

Here is the call graph for this function:

◆ size()

int IFMapUpdateQueue::size ( ) const

Definition at line 251 of file ifmap_update_queue.cc.

◆ tail_marker()

IFMapMarker* IFMapUpdateQueue::tail_marker ( )
inline

Definition at line 87 of file ifmap_update_queue.h.

Friends And Related Function Documentation

◆ ShowIFMapUpdateQueue

friend class ShowIFMapUpdateQueue
friend

Definition at line 94 of file ifmap_update_queue.h.

Member Data Documentation

◆ list_

List IFMapUpdateQueue::list_
private

Definition at line 96 of file ifmap_update_queue.h.

◆ marker_map_

MarkerMap IFMapUpdateQueue::marker_map_
private

Definition at line 97 of file ifmap_update_queue.h.

◆ NULL_SEQUENCE

const uint64_t IFMapUpdateQueue::NULL_SEQUENCE = 0
staticprivate

Definition at line 95 of file ifmap_update_queue.h.

◆ sequence_

uint64_t IFMapUpdateQueue::sequence_
private

Definition at line 100 of file ifmap_update_queue.h.

◆ server_

IFMapServer* IFMapUpdateQueue::server_
private

Definition at line 99 of file ifmap_update_queue.h.

◆ tail_marker_

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: