/* -----------------------------------------------------------------------------
	GSFramework
	Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */


#ifndef	__VIEWERBASEMONITOREVENTHANDLER__
#define	__VIEWERBASEMONITOREVENTHANDLER__


		#include "debug_enet/network_debugger.h"


namespace GS {
	class ViewerBase;
	namespace Script {

/*!
	@short	Viewer base debugger VM event handler.
	This event handler augments the network debugger to include the viewer
	protocol commands.
	@author Emmanuel Julien (ejulien@owloh.com)
*/
struct	ViewerBaseDebugger : public NetworkDebugger
{
		ViewerBase	&viewer;

		// Viewer base debugger interface.
virtual	void		SetViewerStatus(const char *);
virtual	IO::Base	*WrapRemoteFileSystem(IO::Base *remote_fs);

		// Network debugger interface.
		void		OnControllerPacketReceived(const Array <char> &);

		ViewerBaseDebugger(ViewerBase &, IDebugger *, const char *address, int port);
};

	} // Script
} // GS


#endif	// __VIEWERBASEMONITOREVENTHANDLER__
