[winpr,utils] add MessageQueue_Capacity

This commit is contained in:
Armin Novak
2026-02-18 10:01:44 +01:00
parent c9b72743e3
commit 57dfd75231
2 changed files with 24 additions and 0 deletions

View File

@@ -727,8 +727,23 @@ extern "C"
WINPR_API wObject* MessageQueue_Object(wMessageQueue* queue);
WINPR_API HANDLE MessageQueue_Event(wMessageQueue* queue);
WINPR_API BOOL MessageQueue_Wait(wMessageQueue* queue);
/** @brief return the currently used number of elements in the queue
*
* @param queue A pointer to the queue to query. Must not be \b NULL
*
* @return The number of elements in the queue
*/
WINPR_API size_t MessageQueue_Size(wMessageQueue* queue);
/** @brief return the currently allocated elements in the queue
*
* @param queue A pointer to the queue to query. Must not be \b NULL
*
* @return The number of currently allocated elements in the queue
*/
WINPR_API size_t MessageQueue_Capacity(wMessageQueue* queue);
WINPR_API BOOL MessageQueue_Dispatch(wMessageQueue* queue, const wMessage* message);
WINPR_API BOOL MessageQueue_Post(wMessageQueue* queue, void* context, UINT32 type, void* wParam,
void* lParam);

View File

@@ -77,6 +77,15 @@ size_t MessageQueue_Size(wMessageQueue* queue)
return ret;
}
size_t MessageQueue_Capacity(wMessageQueue* queue)
{
WINPR_ASSERT(queue);
EnterCriticalSection(&queue->lock);
const size_t ret = queue->capacity;
LeaveCriticalSection(&queue->lock);
return ret;
}
/**
* Methods
*/