#ifndef OpenTestSystem_OtxDiagManager_OtxDiagApi_OtxDataTypes_IOtxResponseParameters_H
#define OpenTestSystem_OtxDiagManager_OtxDiagApi_OtxDataTypes_IOtxResponseParameters_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 IOtxResponseParameters
	{
	protected:
		inline IOtxResponseParameters() {}
	public:
		inline virtual ~IOtxResponseParameters() {};
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiDatatypeComfortMethodComment
		/// </summary>
		virtual std::string GetName() = 0;
		
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiDatatypeComfortMethodComment
		/// </summary>
		virtual void Add(std::shared_ptr<IOtxResponseParameter> responseParameter) = 0;
		
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiDatatypeComfortMethodComment
		/// </summary>
		virtual int GetCount() = 0;
		
		/// <summary>
		/// @snippetdoc DocSnippets.txt OtxDiagApiDatatypeComfortMethodComment
		/// </summary>
		virtual std::shared_ptr<IOtxResponseParameter> GetItemByIndex(int index) = 0;
	};
}}}}
#endif // OpenTestSystem_OtxDiagManager_OtxDiagApi_OtxDataTypes_IOtxResponseParameters_H