#ifndef REMOTING_PROTOCOL_STUN_TCP_PACKET_PROCESSOR_H_
#define REMOTING_PROTOCOL_STUN_TCP_PACKET_PROCESSOR_H_
#include <stdint.h>
#include "base/memory/scoped_refptr.h"
#include "remoting/protocol/stream_packet_processor.h"
namespace remoting::protocol {
class StunTcpPacketProcessor final : public StreamPacketProcessor {
public:
StunTcpPacketProcessor();
~StunTcpPacketProcessor() override;
StunTcpPacketProcessor(const StunTcpPacketProcessor&) = delete;
StunTcpPacketProcessor& operator=(const StunTcpPacketProcessor&) = delete;
static StunTcpPacketProcessor* GetInstance();
scoped_refptr<net::IOBufferWithSize> Pack(const uint8_t* data,
size_t data_size) const override;
scoped_refptr<net::IOBufferWithSize> Unpack(
const uint8_t* data,
size_t data_size,
size_t* bytes_consumed) const override;
void ApplyPacketOptions(
uint8_t* data,
size_t data_size,
const rtc::PacketTimeUpdateParams& packet_time_params) const override;
};
}
#endif