#ifndef OpenTestSystem_DiagConfiguration_OtxDiagApi_IDiagConfiguration_H
#define OpenTestSystem_DiagConfiguration_OtxDiagApi_IDiagConfiguration_H

#include "ApiDefs.h"
#include "TypeDefs.h"
#include "OtxDataTypes/AllClasses.h"
#include <string>
#include <memory>
#include <vector>

namespace OpenTestSystem { namespace OtxDiagManager { namespace OtxDiagApi {
	/// <summary>
	/// @snippetdoc DocSnippets.txt OtxDiagApiClassComment
	/// </summary>
	class API_EXPORTS IDiagConfiguration
	{
	protected:
		IDiagConfiguration() {}
	public:
		virtual ~IDiagConfiguration() {}
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiMethodComment
		/// </summary>
		virtual void SelectProject(std::string projectName) = 0;
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiMethodComment
		/// </summary>
		virtual void SelectVehicleInformation(std::string vehicleInfo) = 0;
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiMethodComment
		/// </summary>
		virtual std::string GetActiveProject() = 0;
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiMethodComment
		/// </summary>
		virtual std::string GetActiveProjectVersion() = 0;
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiMethodComment
		/// </summary>
		virtual std::string GetActiveVehicleInformation() = 0;
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiMethodComment
		/// </summary>
		virtual std::vector<std::string> GetDbProjectList() = 0;
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiMethodComment
		/// </summary>
		virtual std::vector<std::string> GetDbVehicleInformationList() = 0;
	};
}}}
#endif // OpenTestSystem_DiagConfiguration_OtxDiagApi_IDiagConfiguration_H