#ifndef __BUFFERED_SERIAL_PORT_H__
#define __BUFFERED_SERIAL_PORT_H__

#include "ringbuffer.h"

template<sig_atomic_t RX_FIFO_DEPTH, sig_atomic_t TX_FIFO_DEPTH, class U>
class BufferedSerialPort
{
	public:

		BufferedSerialPort(U& uart) : _aUart(uart) {}
		void Put(char ch) {}
		void Put(char const *s) {}
		void Send(void) {}
		void Receive(void) {}
		static void InterruptHandler(void);

	private:
		RingBuffer<char, RX_FIFO_DEPTH>	_rxFIFO;
		RingBuffer<char, TX_FIFO_DEPTH>	_txFIFO;
		U&								_aUart;
};

#endif // __BUFFERED_SERIAL_PORT_H__
