42 (void) pthread_mutex_destroy(&this->
queueLock);
54 m_handle((POINTER_CAST)
NULL) {
58 QueueHandle* queueHandle = (QueueHandle*) this->
m_handle;
61 if (
NULL != queueHandle) {
67 queueHandle =
new QueueHandle;
68 if (
NULL == queueHandle) {
71 if( !queueHandle->create(depth, msgSize) ) {
74 this->
m_handle = (POINTER_CAST) queueHandle;
76 #if FW_QUEUE_REGISTRATION
77 if (this->s_queueRegistry) {
78 this->s_queueRegistry->regQueue(
this);
87 QueueHandle* queueHandle = (QueueHandle*) this->
m_handle;
88 if (
NULL != queueHandle) {
97 pthread_cond_t* queueNotEmpty = &queueHandle->queueNotEmpty;
98 pthread_mutex_t* queueLock = &queueHandle->queueLock;
105 ret = pthread_mutex_lock(queueLock);
110 bool pushSucceeded = queue->
push(buffer, size, priority);
124 ret = pthread_mutex_unlock(queueLock);
135 pthread_cond_t* queueNotEmpty = &queueHandle->queueNotEmpty;
136 pthread_cond_t* queueNotFull = &queueHandle->queueNotFull;
137 pthread_mutex_t* queueLock = &queueHandle->queueLock;
143 ret = pthread_mutex_lock(queueLock);
148 while( queue->
isFull() ) {
154 bool pushSucceeded = queue->
push(buffer, size, priority);
164 ret = pthread_cond_signal(queueNotEmpty);
168 ret = pthread_mutex_unlock(queueLock);
179 QueueHandle* queueHandle = (QueueHandle*) this->
m_handle;
180 BufferQueue* queue = &queueHandle->queue;
182 if (
NULL == queueHandle) {
186 if (
NULL == buffer) {
195 return sendNonBlock(queueHandle, buffer, size, priority);
198 return sendBlock(queueHandle, buffer, size, priority);
204 pthread_mutex_t* queueLock = &queueHandle->queueLock;
205 pthread_cond_t* queueNotFull = &queueHandle->queueNotFull;
215 ret = pthread_mutex_lock(queueLock);
220 bool popSucceeded = queue->
pop(buffer, size, pri);
238 else if( size == 0 ) {
249 ret = pthread_mutex_unlock(queueLock);
260 pthread_cond_t* queueNotEmpty = &queueHandle->queueNotEmpty;
261 pthread_cond_t* queueNotFull = &queueHandle->queueNotFull;
262 pthread_mutex_t* queueLock = &queueHandle->queueLock;
272 ret = pthread_mutex_lock(queueLock);
283 bool popSucceeded = queue->
pop(buffer, size, pri);
310 ret = pthread_mutex_unlock(queueLock);
324 QueueHandle* queueHandle = (QueueHandle*) this->
m_handle;
326 if (
NULL == queueHandle) {
337 return receiveNonBlock(queueHandle, buffer, capacity, actualSize, priority);
340 return receiveBlock(queueHandle, buffer, capacity, actualSize, priority);
344 QueueHandle* queueHandle = (QueueHandle*) this->
m_handle;
345 if (
NULL == queueHandle) {
348 BufferQueue* queue = &queueHandle->queue;
349 return queue->getCount();
353 QueueHandle* queueHandle = (QueueHandle*) this->
m_handle;
354 if (
NULL == queueHandle) {
357 BufferQueue* queue = &queueHandle->queue;
358 return queue->getMaxCount();
362 QueueHandle* queueHandle = (QueueHandle*) this->
m_handle;
363 if (
NULL == queueHandle) {
366 BufferQueue* queue = &queueHandle->queue;
367 return queue->getDepth();
371 QueueHandle* queueHandle = (QueueHandle*) this->
m_handle;
372 if (
NULL == queueHandle) {
375 BufferQueue* queue = &queueHandle->queue;
376 return queue->getMsgSize();