37 ret = pthread_mutex_init(&this->
queueLock,
nullptr);
43 (void) pthread_mutex_destroy(&this->
queueLock);
55 m_handle(reinterpret_cast<POINTER_CAST>(nullptr)) {
59 QueueHandle* queueHandle =
reinterpret_cast<QueueHandle*
>(this->
m_handle);
62 if (
nullptr != queueHandle) {
64 queueHandle =
nullptr;
68 queueHandle =
new(std::nothrow) QueueHandle;
69 if (
nullptr == queueHandle) {
72 if( !queueHandle->create(depth, msgSize) ) {
75 this->
m_handle =
reinterpret_cast<POINTER_CAST
>(queueHandle);
77 #if FW_QUEUE_REGISTRATION
78 if (this->s_queueRegistry) {
79 this->s_queueRegistry->regQueue(
this);
88 QueueHandle* queueHandle =
reinterpret_cast<QueueHandle*
>(this->
m_handle);
89 if (
nullptr != queueHandle) {
92 this->
m_handle =
reinterpret_cast<POINTER_CAST
>(
nullptr);
98 pthread_cond_t* queueNotEmpty = &queueHandle->queueNotEmpty;
99 pthread_mutex_t* queueLock = &queueHandle->queueLock;
106 ret = pthread_mutex_lock(queueLock);
111 bool pushSucceeded = queue->
push(buffer, size, priority);
125 ret = pthread_mutex_unlock(queueLock);
136 pthread_cond_t* queueNotEmpty = &queueHandle->queueNotEmpty;
137 pthread_cond_t* queueNotFull = &queueHandle->queueNotFull;
138 pthread_mutex_t* queueLock = &queueHandle->queueLock;
144 ret = pthread_mutex_lock(queueLock);
149 while( queue->
isFull() ) {
155 bool pushSucceeded = queue->
push(buffer, size, priority);
165 ret = pthread_cond_signal(queueNotEmpty);
169 ret = pthread_mutex_unlock(queueLock);
180 QueueHandle* queueHandle =
reinterpret_cast<QueueHandle*
>(this->
m_handle);
181 BufferQueue* queue = &queueHandle->queue;
183 if (
nullptr == queueHandle) {
187 if (
nullptr == buffer) {
191 if (size < 0 ||
static_cast<NATIVE_UINT_TYPE>(size) > queue->getMsgSize()) {
196 return sendNonBlock(queueHandle, buffer, size, priority);
199 return sendBlock(queueHandle, buffer, size, priority);
205 pthread_mutex_t* queueLock = &queueHandle->queueLock;
206 pthread_cond_t* queueNotFull = &queueHandle->queueNotFull;
216 ret = pthread_mutex_lock(queueLock);
221 bool popSucceeded = queue->
pop(buffer, size, pri);
239 else if( size == 0 ) {
250 ret = pthread_mutex_unlock(queueLock);
261 pthread_cond_t* queueNotEmpty = &queueHandle->queueNotEmpty;
262 pthread_cond_t* queueNotFull = &queueHandle->queueNotFull;
263 pthread_mutex_t* queueLock = &queueHandle->queueLock;
273 ret = pthread_mutex_lock(queueLock);
284 bool popSucceeded = queue->
pop(buffer, size, pri);
311 ret = pthread_mutex_unlock(queueLock);
321 if(
reinterpret_cast<POINTER_CAST
>(
nullptr) == this->
m_handle ) {
325 QueueHandle* queueHandle =
reinterpret_cast<QueueHandle*
>(this->
m_handle);
327 if (
nullptr == queueHandle) {
338 return receiveNonBlock(queueHandle, buffer, capacity, actualSize, priority);
341 return receiveBlock(queueHandle, buffer, capacity, actualSize, priority);
345 QueueHandle* queueHandle =
reinterpret_cast<QueueHandle*
>(this->
m_handle);
346 if (
nullptr == queueHandle) {
349 BufferQueue* queue = &queueHandle->queue;
350 return queue->getCount();
354 QueueHandle* queueHandle =
reinterpret_cast<QueueHandle*
>(this->
m_handle);
355 if (
nullptr == queueHandle) {
358 BufferQueue* queue = &queueHandle->queue;
359 return queue->getMaxCount();
363 QueueHandle* queueHandle =
reinterpret_cast<QueueHandle*
>(this->
m_handle);
364 if (
nullptr == queueHandle) {
367 BufferQueue* queue = &queueHandle->queue;
368 return queue->getDepth();
372 QueueHandle* queueHandle =
reinterpret_cast<QueueHandle*
>(this->
m_handle);
373 if (
nullptr == queueHandle) {
376 BufferQueue* queue = &queueHandle->queue;
377 return queue->getMsgSize();