1
0
Fork 0

receive packets

This commit is contained in:
Kevin Matz 2023-04-25 10:10:16 -04:00
parent 960e228e59
commit d91838dc5b
2 changed files with 54 additions and 0 deletions

View File

@ -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

View File

@ -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