39template<
class _elementType>
64 for (index = 0; index < this->Size; index++) {
71 this->Head = this->Data;
72 this->Tail = this->Data;
73 this->Sentinel = this->Data + this->Size;
125 pointer oneAfterHead = this->Head + 1;
126 if (oneAfterHead >= this->Sentinel) {
127 oneAfterHead = this->Data;
129 return oneAfterHead == this->Tail;
148 pointer newHead = this->Head + 1;
150 if (newHead >= this->Sentinel) {
151 newHead = this->Data;
154 if (newHead == this->Tail) {
158 *(this->Head) = newObject;
159 this->Head = newHead;
185 if (this->Tail >= this->Sentinel) {
186 this->Tail = this->Data;
219 if (this->Size > 0) {
222 for (index = 0; index <
size; index++) {
224 if (!genericPointer) {
225 CMN_LOG_RUN_ERROR <<
"class mtsQueueGeneric: Allocate failed to create generic object for "
226 << this->ClassServices->
GetName() << std::endl;
230 this->Data[index] = typedPointer;
236 this->Head = this->Data;
237 this->Tail = this->Data;
238 this->Sentinel = this->Data + this->Size;
243 for (index = 0; index < this->Size; index++) {
244 delete this->Data[index];
246 delete [] this->Data;
263 this->ClassServices = value.
Services();
266 << this->ClassServices->
GetName() << std::endl;
279 if (this->ClassServices != 0) {
280 if (this->ClassServices != value.
Services()) {
282 << this->ClassServices->
GetName() <<
"\", now using \""
286 if (this->Data != 0) {
288 << this->ClassServices->
GetName() <<
"\"" << std::endl;
291 this->ClassServices = value.
Services();
316 pointer * oneAfterHead = this->Head + 1;
317 if (oneAfterHead >= this->Sentinel) {
318 oneAfterHead = this->Data;
320 return oneAfterHead == this->Tail;
335 pointer * newHead = this->Head + 1;
337 if (newHead >= this->Sentinel) {
338 newHead = this->Data;
341 if (newHead == this->Tail) {
346 if (!this->ClassServices->
Create(*(this->Head), newObject)) {
351 this->Head = newHead;
352 return *(this->Head);
364 return *(this->Tail);
375 pointer result = *(this->Tail);
377 if (this->Tail >= this->Sentinel) {
378 this->Tail = this->Data;
Base class for class services.
Definition cmnClassServicesBase.h:46
const std::string & GetName(void) const
virtual cmnGenericObject * Create(void) const =0
Base class for high level objects.
Definition cmnGenericObject.h:53
virtual const cmnClassServicesBase * Services(void) const =0
Base class for data object in cisstMultiTask.
Definition mtsGenericObject.h:52
_elementType value_type
Definition mtsGenericObjectProxy.h:329
mtsGenericTypesUnwrapImpl< T, cmnIsDerivedFromTemplated< T, mtsGenericObjectProxyBase >::IS_DERIVED >::BaseType BaseType
Definition mtsGenericObjectProxy.h:732
pointer * Data
Definition mtsQueue.h:209
size_type GetSize(void) const
Definition mtsQueue.h:297
void Allocate(size_type size, const_reference value)
Definition mtsQueue.h:216
size_type GetAvailable(void) const
Definition mtsQueue.h:304
void Free(void)
Definition mtsQueue.h:241
const_pointer Put(const_reference newObject)
Definition mtsQueue.h:334
~mtsQueueGeneric()
Definition mtsQueue.h:271
const cmnClassServicesBase * ClassServices
Definition mtsQueue.h:208
size_t size_type
Definition mtsQueue.h:204
bool IsEmpty(void) const
Definition mtsQueue.h:325
pointer Peek(void) const
Definition mtsQueue.h:360
size_type Size
Definition mtsQueue.h:213
pointer Get(void)
Definition mtsQueue.h:371
size_t index_type
Definition mtsQueue.h:205
mtsQueueGeneric(void)
Definition mtsQueue.h:252
pointer * Tail
Definition mtsQueue.h:211
mtsQueueGeneric(size_type size, const_reference value)
Definition mtsQueue.h:262
const value_type * const_pointer
Definition mtsQueue.h:201
value_type * pointer
Definition mtsQueue.h:200
pointer * Head
Definition mtsQueue.h:210
void SetSize(size_type size, const_reference value)
Definition mtsQueue.h:278
mtsGenericObject value_type
Definition mtsQueue.h:199
const value_type & const_reference
Definition mtsQueue.h:203
value_type & reference
Definition mtsQueue.h:202
bool IsFull(void) const
Definition mtsQueue.h:315
pointer * Sentinel
Definition mtsQueue.h:212
~mtsQueue()
Definition mtsQueue.h:92
_elementType value_type
Definition mtsQueue.h:43
bool IsFull(void) const
Definition mtsQueue.h:124
size_type GetAvailable(void) const
Definition mtsQueue.h:113
pointer Get(void)
Definition mtsQueue.h:179
const value_type * const_pointer
Definition mtsQueue.h:45
size_t index_type
Definition mtsQueue.h:49
const value_type & const_reference
Definition mtsQueue.h:47
pointer Peek(void) const
Definition mtsQueue.h:168
pointer Tail
Definition mtsQueue.h:54
size_t size_type
Definition mtsQueue.h:48
value_type * pointer
Definition mtsQueue.h:44
void Allocate(size_type size, const_reference value)
Definition mtsQueue.h:59
bool IsEmpty(void) const
Definition mtsQueue.h:134
pointer Data
Definition mtsQueue.h:52
pointer Head
Definition mtsQueue.h:53
pointer Sentinel
Definition mtsQueue.h:55
const_pointer Put(const typename mtsGenericTypesUnwrap< value_type >::BaseType &newObject)
Definition mtsQueue.h:146
size_type Size
Definition mtsQueue.h:56
size_type GetSize(void) const
Definition mtsQueue.h:106
value_type & reference
Definition mtsQueue.h:46
void SetSize(size_type size, const_reference value)
Definition mtsQueue.h:99
mtsQueue(void)
Definition mtsQueue.h:78
mtsQueue(size_type size, const_reference value)
Definition mtsQueue.h:87
#define CMN_ASSERT(expr)
Definition cmnAssert.h:97
#define CMN_LOG_RUN_ERROR
Definition cmnLogger.h:166
#define CMN_LOG_INIT_DEBUG
Definition cmnLogger.h:165
#define CMN_LOG_INIT_WARNING
Definition cmnLogger.h:163
size_type size(void) const
Definition vctDynamicConstMatrixBase.h:228