#ifndef OpenTestSystem_DiagConfiguration_OtxDiagApi_IFlashPlus_H
#define OpenTestSystem_DiagConfiguration_OtxDiagApi_IFlashPlus_H

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

namespace OpenTestSystem { namespace OtxDiagManager { namespace OtxDiagApi {
	/// <summary>
	/// @snippetdoc DocSnippets.txt OtxDiagApiClassComment
	/// </summary>
	class API_EXPORTS IFlashPlus
	{
	protected:
		inline IFlashPlus() {}
	public:
		inline virtual ~IFlashPlus() {}
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiMethodComment
		/// </summary>
		virtual void SetActiveFile(double block, const std::string & filePath, std::shared_ptr<OpenTestSystem::OtxDiagManager::OtxDiagApi::OtxDataTypes::IOtxFlashSession> session) = 0;
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiMethodComment
		/// </summary>
		virtual std::string GetActiveFileName(double block, std::shared_ptr<OpenTestSystem::OtxDiagManager::OtxDiagApi::OtxDataTypes::IOtxFlashSession> session) = 0;
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiMethodComment
		/// </summary>
		virtual std::vector<std::string> GetFlashDataFileNames(double block, std::shared_ptr<OpenTestSystem::OtxDiagManager::OtxDiagApi::OtxDataTypes::IOtxFlashSession> session) = 0;
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiMethodComment
		/// </summary>
		virtual std::string GetOwnIdentFromComChannel(double block, std::shared_ptr<OpenTestSystem::OtxDiagManager::OtxDiagApi::OtxDataTypes::IOtxFlashSession> session, std::shared_ptr<OpenTestSystem::OtxDiagManager::OtxDiagApi::OtxDataTypes::IOtxComChannel> comChannel) = 0;
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiMethodComment
		/// </summary>
		virtual bool IsLateBound(double block, std::shared_ptr<OpenTestSystem::OtxDiagManager::OtxDiagApi::OtxDataTypes::IOtxFlashSession> session) = 0;
	};
}}}
#endif // OpenTestSystem_DiagConfiguration_OtxDiagApi_IFlashPlus_H