receive packets
This commit is contained in:
parent
960e228e59
commit
d91838dc5b
|
@ -107,5 +107,55 @@ void Receiver::scheduleBundle(const std::shared_ptr<Bundle> msg) const
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Receiver::rxPacket
|
||||
* @param stream
|
||||
*/
|
||||
void Receiver::rxPacket(std::shared_ptr<bufferstream> buffer) const
|
||||
{
|
||||
while (buffer->good()) {
|
||||
auto msg = std::make_shared<Message>();
|
||||
msg->iStream(buffer);
|
||||
if (!buffer->fail())
|
||||
dispatch(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Receiver::rxPacketTCP
|
||||
* @param stream
|
||||
*
|
||||
* This method is presented in \cite Spec10 Spec 1.0, but has been delared as legacy
|
||||
* in favor SLIP framming.
|
||||
*
|
||||
* \note It may be necessary to later move the length check into the TCP receiver.
|
||||
*/
|
||||
void Receiver::rxPacketTCP(std::shared_ptr<bufferstream> buffer) const
|
||||
{
|
||||
while (buffer->good()) {
|
||||
uint32_t size;
|
||||
auto msg = std::make_shared<Message>();
|
||||
*buffer >> size;
|
||||
msg->iStream(buffer);
|
||||
if (size != msg->streamSize())
|
||||
buffer->setstate(std::ios::failbit);
|
||||
if (!buffer->fail())
|
||||
dispatch(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Receiver::rxPacketSLIP
|
||||
* @param stream
|
||||
*/
|
||||
void Receiver::rxPacketSLIP(std::shared_ptr<bufferstream> buffer) const
|
||||
{
|
||||
(void)buffer;
|
||||
/// \todo Receive an SLIP framed message.
|
||||
}
|
||||
|
||||
|
||||
} // namespace OSC
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
*/
|
||||
#pragma once
|
||||
|
||||
#include <bufferstream.h>
|
||||
#include "bundle.h"
|
||||
#include "message.h"
|
||||
#include "method.h"
|
||||
|
@ -45,6 +46,9 @@ public:
|
|||
|
||||
protected:
|
||||
void scheduleBundle(const std::shared_ptr<Bundle>) const;
|
||||
void rxPacketUDP(std::shared_ptr<bufferstream>) const;
|
||||
void rxPacketTCP(std::shared_ptr<bufferstream>) const;
|
||||
void rxPacketSLIP(std::shared_ptr<bufferstream>) const;
|
||||
|
||||
/**
|
||||
* @brief rootMethod
|
||||
|
|
Loading…
Reference in New Issue