#ifndef OpenTestSystem_OtxDiagManager_OtxDiagApi_OtxDataTypes_IOtxRequestParameter_H
#define OpenTestSystem_OtxDiagManager_OtxDiagApi_OtxDataTypes_IOtxRequestParameter_H

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

namespace OpenTestSystem { namespace OtxDiagManager { namespace OtxDiagApi { namespace OtxDataTypes {
	/// <summary>
	/// @snippetdoc DocSnippets.txt OtxDiagApiDatatypeComment
	/// </summary>
	class API_EXPORTS IOtxRequestParameter
	{
	protected:
		inline IOtxRequestParameter() {}
	public:
		inline virtual ~IOtxRequestParameter() {};
		
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiDatatypeComfortMethodComment
		/// </summary>
		virtual std::string GetPath() const = 0;
		
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiDatatypeComfortMethodComment
		/// </summary>
		virtual std::shared_ptr<IOtxValue> GetValue() = 0;
	};
}}}}
#endif // OpenTestSystem_OtxDiagManager_OtxDiagApi_OtxDataTypes_IOtxRequestParameter_H