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::SegmentIdDataTypem_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, and ~SegmenterIdsManager().

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

Referenced by SegmenterIdsManager().

Member Function Documentation

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

Stores a free unique ID for later use.

Parameters
idThe segment ID.
Note
This method is thread safe.

Definition at line 77 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.
Note
This method is thread safe.

Definition at line 86 of file SegmenterIdsManager.cpp.

References m_freeIDs, and m_mutex.

Referenced by te::rp::SegmenterRegionGrowingMeanStrategy::initializeSegments(), te::rp::SegmenterRegionGrowingBaatzStrategy::initializeSegments(), and te::rp::rg::mergeSegments().

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

Stores free unique IDs for later use.

Parameters
idsThe segment IDs.
Note
This method is thread safe.

Definition at line 101 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.
Note
This method is thread safe.

Definition at line 15 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.
Note
This method is thread safe.

Definition at line 41 of file SegmenterIdsManager.cpp.

References m_freeIDs, m_mutex, and m_segmentsIdsCounter.

Referenced by te::rp::SegmenterRegionGrowingMeanStrategy::initializeSegments(), and te::rp::SegmenterRegionGrowingBaatzStrategy::initializeSegments().

Member Data Documentation

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

Internal free segments IDs list

Definition at line 102 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 99 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 96 of file SegmenterIdsManager.h.

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


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