//================ Copyright (c) 1996-2009 Valve Corporation. All Rights Reserved. =================
//
//
//
//==================================================================================================

#ifndef IVWATCHSERVICE_H
#define IVWATCHSERVICE_H
#ifdef _WIN32
#pragma once
#endif


#include "tier1/interface.h"


#define VWATCH_SERVICE_VERSION	"VWatchService001"


class IVWatchService
{
public:
	// Fire it up.
	// pFactoryFn is used to get the filesystem interface.
	// It'll run until you call Stop() to make it stop.
	// Stop() must be called from another thread.
	// If it returns false, it will only do so during startup and that indicates a startup problem.
	virtual bool Run( CreateInterfaceFn pFactoryFn ) = 0;
	
	// Note: This can be called from any thread. It will interrupt the service as soon as it can and
	// return after the service has exited from its Run() function.
	virtual void Stop() = 0;
};


#endif // IVWATCHSERVICE_H