/*
 * Copyright 2023-2024, ttcoder
 * All rights reserved. Distributed under the terms of the MIT license.
 */
#ifndef _geno_pilot_H
#define _geno_pilot_H


// stdcxx.lib.so
#include <map>  // member

// haiku.lib.so
#include <support/String.h>  // member
class BStringList;


namespace hog {
	class Pilot;
};


class hog::Pilot
{
	// WHAT
	// Base class for
	// - InitPilot
	// - DepotPilot
	
public:
		Pilot();
		~Pilot();
		
		//void AddProcess()
		bool Toggle/*Launch_or_Relaunch*/( const BStringList & arg_list );
			//+:  void*environ
		bool Toggle_Xml( BString exe_path, BString xml_config, int32 ram_quota_MB );

private:  // Code
	virtual void genAndSendConf() = 0;

protected: ///private:  // Types
		struct Dynit_Child;

protected: ///private:  // Data
		// state
		std::map< BString, Dynit_Child * > childrenParams;  // components (apps) and their properties
};


#endif // _geno_pilot_H

