summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/ipc/rtc_tcp_connection.h
blob: 9ec74b9053749be3bee07fa7149c49b21b14e918 (plain) (blame)
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
// license:BSD-3-Clause
// copyright-holders:Inaki Baz Castillo,Miodrag Milanovic

#ifndef RTC_TCP_CONNECTION_H
#define RTC_TCP_CONNECTION_H

#include "tcp_connection.h"


class rtc_tcp_connection : public tcp_connection
{
public:
	class listener
	{
	public:
		virtual ~listener(){ }
		virtual void on_packet_recv(rtc_tcp_connection *connection, const uint8_t* data, size_t len) = 0;
	};

	rtc_tcp_connection(listener* listener, size_t bufferSize);
	virtual ~rtc_tcp_connection();

	/* Pure virtual methods inherited from tcp_connection. */
	virtual void user_on_tcp_connection_read() override;

	void send(const uint8_t* data, size_t len);

private:
	// Passed by argument.
	listener* m_listener;
	size_t m_frame_start;  // Where the latest frame starts.
};
#endif