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::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)
 
IFMapListEntry * Next (IFMapListEntry *current)
 
IFMapListEntry * Previous (IFMapListEntry *current)
 
IFMapListEntry * GetLast ()
 
void MoveMarkerBefore (IFMapMarker *marker, IFMapListEntry *current)
 
void MoveMarkerAfter (IFMapMarker *marker, IFMapListEntry *current)
 
IFMapMarker * MarkerSplitBefore (IFMapMarker *marker, IFMapListEntry *current, const BitSet &msplit)
 
IFMapMarker * MarkerSplitAfter (IFMapMarker *marker, IFMapListEntry *current, const BitSet &msplit)
 
void MarkerMerge (IFMapMarker *dst, IFMapMarker *src, const BitSet &mmove)
 
void Join (int bit)
 
void Leave (int bit)
 
IFMapMarker * GetMarker (int bit)
 
bool empty () const
 
IFMapMarker * tail_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 ()
 
IFMapMarker * MarkerSplit (IFMapMarker *marker, IFMapListEntry *current, const BitSet &msplit, bool before)
 

Private Attributes

List list_
 
MarkerMap marker_map_
 
IFMapMarker tail_marker_
 
IFMapServer * server_
 
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: