#ifndef LauncherPlugin_hpp
#define LauncherPlugin_hpp

#include <NodePath.hpp>
#include <INodeListener.hpp>

using namespace apoc::legacy;

namespace apoc { namespace legacy { namespace plugins { namespace launchers {

    
    class LauncherPlugin: public INodeListener {
    public:
	LauncherPlugin( void ) ;
	LauncherPlugin( int aNbArgs, const char **aArgs ) ;
	void execute( void ) ;
	virtual void onNodeAdded( const NodePath& aPath ) ;
	virtual void onNodeRemoved( const NodePath& aPath ) ;
	virtual void onNodeChanged( const NodePath& aPath ) ;
	virtual ~LauncherPlugin();

    private:
	std::string mBaseDir ;
	void onChange() ;
	void removeLaunchers() ;
	void setDefaultBaseDir() ;
	void addListener() ;
	void removeListener() ;
    };

} } } }; //apoc.legacy.plugins.launchers

#endif
