#ifndef __LOGGING_THREAD_H_INCLUDED__
#define __LOGGING_THREAD_H_INCLUDED__

#include <stdint.h>
#include "socket.h"
#include "threads.h"
#include "elmo.h"
#include "motor_interogator.h"

class LoggingThread : public Thread {
public:
	LoggingThread (uint16_t	labviewPortNumber, Elmo& winch, Elmo& levelWind)
		: m_LabviewPortNumber(labviewPortNumber), m_Winch(winch), m_LevelWind(levelWind),
		  m_WinchInterogator("WM", winch), m_LevelWindInterogator("LW", levelWind) {}

	~LoggingThread(void) {}
	{
		m_Winch.EchoOn();
		m_LevelWind.EchoOn();
	}

protected:
	virtual void* Run(void*);

private:
	void				logData(tcp_socket labviewSocket);
	uint16_t			m_LabviewPortNumber;
	Elmo&				m_Winch;
	Elmo&				m_LevelWind;
	MotorInterogator	m_WinchInterogator;
	MotorInterogator	m_LevelWindInterogator;
};

#endif
