-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbufferreader.cpp
More file actions
35 lines (29 loc) · 980 Bytes
/
Copy pathbufferreader.cpp
File metadata and controls
35 lines (29 loc) · 980 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "bufferreader.h"
BufferReader::BufferReader()
{
LOG(__PRETTY_FUNCTION__);
}
BufferReader::~BufferReader()
{
LOG(__PRETTY_FUNCTION__);
}
void BufferReader::processBuffer(std::unique_ptr<oscpkt::PacketReader> _ptrPacketReader)
{
LOG(__PRETTY_FUNCTION__, " ",std::this_thread::get_id());
oscpkt::Message *msg;
while (_ptrPacketReader->isOk() && (msg = _ptrPacketReader->popMessage()) != 0) {
OscAddressReader addReader(*msg);
if(addReader.head() == "device"){
addReader.pop();
messaging::send<OscDeviceMessage>(this,OscDeviceMessage(*msg, addReader));
}
}
}
void BufferReader::handleMessage(const BufferMessage& _msg)
{
LOG(__PRETTY_FUNCTION__);
std::unique_ptr<oscpkt::PacketReader> ptrPacketReader(new oscpkt::PacketReader);
ptrPacketReader->init(_msg.buffer.data(),_msg.howMany);
std::thread t(&BufferReader::processBuffer, this, std::move(ptrPacketReader));
t.detach();
}