All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
te::rp::SegmenterIdsManager Class Reference

Segmenter segments IDs manager. More...

#include <SegmenterIdsManager.h>

Public Member Functions

void addFreeID (const SegmenterSegmentsBlock::SegmentIdDataType &id)
 Stores a free unique ID for later use. More...
 
void addFreeIDs (const std::vector< SegmenterSegmentsBlock::SegmentIdDataType > &ids)
 Stores free unique IDs for later use. More...
 
void addFreeIDs (const std::list< SegmenterSegmentsBlock::SegmentIdDataType > &ids)
 Stores free unique IDs for later use. More...
 
SegmenterSegmentsBlock::SegmentIdDataType getNewID ()
 Returns a new segment unique ID. More...
 
bool getNewIDs (const unsigned int &idsNumber, std::vector< SegmenterSegmentsBlock::SegmentIdDataType > &ids)
 Returns new segment unique IDs. More...
 
 SegmenterIdsManager ()
 
 ~SegmenterIdsManager ()
 

Protected Attributes

std::list
< SegmenterSegmentsBlock::SegmentIdDataType
m_freeIDs
 
boost::mutex m_mutex
 
volatile
SegmenterSegmentsBlock::SegmentIdDataType 
m_segmentsIdsCounter
 

Detailed Description

Segmenter segments IDs manager.

Definition at line 44 of file SegmenterIdsManager.h.

Constructor & Destructor Documentation

te::rp::SegmenterIdsManager::SegmenterIdsManager ( )

Definition at line 8 of file SegmenterIdsManager.cpp.

References m_segmentsIdsCounter.

te::rp::SegmenterIdsManager::~SegmenterIdsManager ( )

Definition at line 14 of file SegmenterIdsManager.cpp.

Member Function Documentation

void te::rp::SegmenterIdsManager::addFreeID ( const SegmenterSegmentsBlock::SegmentIdDataType id)

Stores a free unique ID for later use.

Parameters
idThe segment ID.

Definition at line 80 of file SegmenterIdsManager.cpp.

References m_freeIDs, and m_mutex.

void te::rp::SegmenterIdsManager::addFreeIDs ( const std::vector< SegmenterSegmentsBlock::SegmentIdDataType > &  ids)

Stores free unique IDs for later use.

Parameters
idsThe segment IDs.

Definition at line 89 of file SegmenterIdsManager.cpp.

References m_freeIDs, and m_mutex.

Referenced by te::rp::SegmenterRegionGrowingStrategy::initializeSegments(), and te::rp::SegmenterRegionGrowingStrategy::mergeSegments().

void te::rp::SegmenterIdsManager::addFreeIDs ( const std::list< SegmenterSegmentsBlock::SegmentIdDataType > &  ids)

Stores free unique IDs for later use.

Parameters
idsThe segment IDs.

Definition at line 104 of file SegmenterIdsManager.cpp.

References m_freeIDs, and m_mutex.

SegmenterSegmentsBlock::SegmentIdDataType te::rp::SegmenterIdsManager::getNewID ( )

Returns a new segment unique ID.

Returns
id A positive new segment ID or zero if an error occurred.

Definition at line 18 of file SegmenterIdsManager.cpp.

References m_freeIDs, m_mutex, and m_segmentsIdsCounter.

bool te::rp::SegmenterIdsManager::getNewIDs ( const unsigned int &  idsNumber,
std::vector< SegmenterSegmentsBlock::SegmentIdDataType > &  ids 
)

Returns new segment unique IDs.

Parameters
idsNumberThe number of unique IDs to return.
idThe segment IDs.
Returns
true if OK, false on errors.

Definition at line 44 of file SegmenterIdsManager.cpp.

References m_freeIDs, m_mutex, and m_segmentsIdsCounter.

Referenced by te::rp::SegmenterRegionGrowingStrategy::initializeSegments().

Member Data Documentation

std::list< SegmenterSegmentsBlock::SegmentIdDataType > te::rp::SegmenterIdsManager::m_freeIDs
protected

Internal free segments IDs list

Definition at line 97 of file SegmenterIdsManager.h.

Referenced by addFreeID(), addFreeIDs(), getNewID(), and getNewIDs().

boost::mutex te::rp::SegmenterIdsManager::m_mutex
protected

Internal free segments IDs counter mutex

Definition at line 94 of file SegmenterIdsManager.h.

Referenced by addFreeID(), addFreeIDs(), getNewID(), and getNewIDs().

volatile SegmenterSegmentsBlock::SegmentIdDataType te::rp::SegmenterIdsManager::m_segmentsIdsCounter
protected

Internal free segments IDs counter - default 0)

Definition at line 91 of file SegmenterIdsManager.h.

Referenced by getNewID(), getNewIDs(), and SegmenterIdsManager().


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