
#ifndef _JL_Reconstruct_Thread_H_
#define _JL_Reconstruct_Thread_H_

#include <stdlib.h>
#include <iostream.h>

#include "thread.h"


class Reconstruct_Thread : public Thread {

	private:
		int		_y;

	public: 
		Reconstruct_Thread();
		Reconstruct_Thread(const Reconstruct_Thread &R) { CopyFrom(R); }
		virtual ~Reconstruct_Thread();

		Reconstruct_Thread& CopyFrom(const Reconstruct_Thread&);
		Reconstruct_Thread& operator=(const Reconstruct_Thread &R)
				{ return CopyFrom(R); }

//		friend ostream& operator<<(ostream&, const Reconstruct_Thread&);
//		friend istream& operator>>(istream&, Reconstruct_Thread&);

		virtual void InitThread(GlobalState&);

		virtual void BeginCycle(CycleState&, GlobalState&);
		virtual int Work(CycleState&, GlobalState&);
		virtual int AnyWorkLeft(CycleState&, GlobalState&);
		virtual void EndCycle(CycleState&, GlobalState&);

		virtual void ShutdownThread();

};

#endif
