Added the ability to block on getMessages until a message arrives

This commit is contained in:
Paul Hollinsky
2018-11-09 16:28:48 -05:00
parent 35bd5139b2
commit 77d694c662
5 changed files with 22 additions and 12 deletions
+2 -2
View File
@@ -188,7 +188,7 @@ bool icsneo_disableMessagePolling(const neodevice_t* device) {
return device->device->disableMessagePolling();
}
bool icsneo_getMessages(const neodevice_t* device, neomessage_t* messages, size_t* items) {
bool icsneo_getMessages(const neodevice_t* device, neomessage_t* messages, size_t* items, uint64_t timeout) {
if(!icsneo_isValidNeoDevice(device)) {
ErrorManager::GetInstance().add(APIError::InvalidNeoDevice);
return false;
@@ -207,7 +207,7 @@ bool icsneo_getMessages(const neodevice_t* device, neomessage_t* messages, size_
std::vector<std::shared_ptr<Message>>& storage = polledMessageStorage[device->device];
if(!device->device->getMessages(storage, *items))
if(!device->device->getMessages(storage, *items, std::chrono::milliseconds(timeout)))
return false;
*items = storage.size();
+1 -1
View File
@@ -111,7 +111,7 @@ int icsneoGetMessages(void* hObject, icsSpyMessage* pMsg, int* pNumberOfMessages
neodevice_t* device = (neodevice_t*)hObject;
size_t messageCount = 20000;
if(!icsneo_getMessages(device, messages, &messageCount))
if(!icsneo_getMessages(device, messages, &messageCount, 0))
return false;
*pNumberOfMessages = (int)messageCount;