187 lines
9.1 KiB
C++
187 lines
9.1 KiB
C++
/**
|
|
* @file KglGenEnum.h
|
|
*
|
|
* Copyright (c) 2017 Keyence Corporation.
|
|
* All rights reserved.
|
|
*
|
|
*/
|
|
#pragma once
|
|
|
|
#include <KglGenParameter.h>
|
|
#include <KglGenEnumEntry.h>
|
|
|
|
namespace Keyence
|
|
{
|
|
|
|
class KglString;
|
|
|
|
//------------------------------------------------------------
|
|
/**
|
|
* \~English @brief Feature parameter class (Enum).
|
|
* \~Japanese @brief Feature(Enum)パラメータクラスです。
|
|
*/
|
|
class KGLLIB_API KglGenEnum : public KglGenParameter
|
|
{
|
|
public:
|
|
|
|
//------------------------------------------------------------
|
|
/**
|
|
* \~English @brief Default constructor.
|
|
* \~Japanese @brief デフォルトコンストラクタ。
|
|
*/
|
|
KglGenEnum() : KglGenParameter(){}
|
|
|
|
//------------------------------------------------------------
|
|
/**
|
|
* \~English @brief Destructor.
|
|
* \~Japanese @brief デストラクタ。
|
|
*/
|
|
virtual ~KglGenEnum(){}
|
|
|
|
//------------------------------------------------------------
|
|
/**
|
|
* \~English @brief Sets the value of a feature (Enum).
|
|
* \~Japanese @brief Feature(Enum)の値を設定します。
|
|
* \~English @param [in] val Feature value.
|
|
* \~Japanese @param [in] val Feature値。
|
|
* \~English @retval KGL_ERR_NOT_INITIALIZED An invalid KglGenParameter.
|
|
* \~Japanese @retval KGL_ERR_NOT_INITIALIZED 無効なKglGenParameterです。
|
|
* \~English @retval KGL_ERR_INVALID_FEATURE_ACCESS The requested operation resulted in an error regarding the Available attribute, access type, or range check of the feature.
|
|
* \~Japanese @retval KGL_ERR_INVALID_FEATURE_ACCESS 要求された操作はFeatureのAvailable属性、アクセスタイプ、範囲チェックのいずれかでエラーが発生しました。
|
|
* \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred.
|
|
* \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。
|
|
* \~English @retval KGL_SUCCESS Success.
|
|
* \~Japanese @retval KGL_SUCCESS 成功。
|
|
*/
|
|
virtual KglResult setValue(int64_t val) = 0;
|
|
|
|
//------------------------------------------------------------
|
|
/**
|
|
* \~English @brief Sets the value of a feature (Enum).
|
|
* \~Japanese @brief Feature(Enum)の値を設定します。
|
|
* \~English @param [in] val Feature value.
|
|
* \~Japanese @param [in] val Feature値。
|
|
* \~English @retval KGL_ERR_NOT_INITIALIZED An invalid KglGenParameter.
|
|
* \~Japanese @retval KGL_ERR_NOT_INITIALIZED 無効なKglGenParameterです。
|
|
* \~English @retval KGL_ERR_INVALID_FEATURE_ACCESS The requested operation resulted in an error regarding the Available attribute, access type, or range check of the feature.
|
|
* \~Japanese @retval KGL_ERR_INVALID_FEATURE_ACCESS 要求された操作はFeatureのAvailable属性、アクセスタイプ、範囲チェックのいずれかでエラーが発生しました。
|
|
* \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred.
|
|
* \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。
|
|
* \~English @retval KGL_SUCCESS Success.
|
|
* \~Japanese @retval KGL_SUCCESS 成功。
|
|
*/
|
|
virtual KglResult setValue(const KglString& val) = 0;
|
|
|
|
//------------------------------------------------------------
|
|
/**
|
|
* \~English @brief Retrieves the value of a feature (Enum).
|
|
* \~Japanese @brief Feature(Enum)の値を取得します。
|
|
* \~English @param [out] val Feature value.
|
|
* \~Japanese @param [out] val Feature値。
|
|
* \~English @retval KGL_ERR_NOT_INITIALIZED An invalid KglGenParameter.
|
|
* \~Japanese @retval KGL_ERR_NOT_INITIALIZED 無効なKglGenParameterです。
|
|
* \~English @retval KGL_ERR_INVALID_FEATURE_ACCESS The requested operation resulted in an error regarding the Available attribute, access type, or range check of the feature.
|
|
* \~Japanese @retval KGL_ERR_INVALID_FEATURE_ACCESS 要求された操作はFeatureのAvailable属性、アクセスタイプ、範囲チェックのいずれかでエラーが発生しました。
|
|
* \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred.
|
|
* \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。
|
|
* \~English @retval KGL_SUCCESS Success.
|
|
* \~Japanese @retval KGL_SUCCESS 成功。
|
|
*/
|
|
virtual KglResult getValue(KglString& val) const = 0;
|
|
|
|
//------------------------------------------------------------
|
|
/**
|
|
* \~English @brief Retrieves the value of a feature (Enum).
|
|
* \~Japanese @brief Feature(Enum)の値を取得します。
|
|
* \~English @param [out] val Feature value.
|
|
* \~Japanese @param [out] val Feature値。
|
|
* \~English @retval KGL_ERR_NOT_INITIALIZED An invalid KglGenParameter.
|
|
* \~Japanese @retval KGL_ERR_NOT_INITIALIZED 無効なKglGenParameterです。
|
|
* \~English @retval KGL_ERR_INVALID_FEATURE_ACCESS The requested operation resulted in an error regarding the Available attribute, access type, or range check of the feature.
|
|
* \~Japanese @retval KGL_ERR_INVALID_FEATURE_ACCESS 要求された操作はFeatureのAvailable属性、アクセスタイプ、範囲チェックのいずれかでエラーが発生しました。
|
|
* \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred.
|
|
* \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。
|
|
* \~English @retval KGL_SUCCESS Success.
|
|
* \~Japanese @retval KGL_SUCCESS 成功。
|
|
*/
|
|
virtual KglResult getValue(int64_t& val) const = 0;
|
|
|
|
//------------------------------------------------------------
|
|
/**
|
|
* \~English @brief Retrieves the number of features (EnumEntries).
|
|
* \~Japanese @brief Feature(EnumEntries)の数を取得します。
|
|
* \~English @param [out] entryCount Number of EnumEntries.
|
|
* \~Japanese @param [out] entryCount EnumEntriesの数。
|
|
* \~English @retval KGL_ERR_NOT_INITIALIZED An invalid KglGenParameter.
|
|
* \~Japanese @retval KGL_ERR_NOT_INITIALIZED 無効なKglGenParameterです。
|
|
* \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred.
|
|
* \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。
|
|
* \~English @retval KGL_SUCCESS Success.
|
|
* \~Japanese @retval KGL_SUCCESS 成功。
|
|
*/
|
|
virtual KglResult getEntriesCount(int64_t& entryCount) const = 0;
|
|
|
|
//------------------------------------------------------------
|
|
/**
|
|
* \~English @brief Retrieves the feature (EnumEntries).
|
|
* \~Japanese @brief Feature(EnumEntries)を取得します。
|
|
* \~English @param [in] entryname name of EnumEntries.
|
|
* \~Japanese @param [in] entryname EnumEntriesの名称。
|
|
* \~English @param [out] entry EnumEntries.
|
|
* \~Japanese @param [out] entry EnumEntries。
|
|
* \~English @retval KGL_ERR_NOT_INITIALIZED An invalid KglGenParameter.
|
|
* \~Japanese @retval KGL_ERR_NOT_INITIALIZED 無効なKglGenParameterです。
|
|
* \~English @retval KGL_NOT_FOUND The specified EnumEntries cannot be found.
|
|
* \~Japanese @retval KGL_NOT_FOUND 指定されたEnumEntriesが見つかりません。
|
|
* \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred.
|
|
* \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。
|
|
* \~English @retval KGL_SUCCESS Success.
|
|
* \~Japanese @retval KGL_SUCCESS 成功。
|
|
*/
|
|
virtual KglResult getEntryByName(const KglString& entryname, const KglGenEnumEntry** entry) const = 0;
|
|
|
|
//------------------------------------------------------------
|
|
/**
|
|
* \~English @brief Retrieves the feature (EnumEntries).
|
|
* \~Japanese @brief Feature(EnumEntries)を取得します。
|
|
* \~English @param [in] idx Index (0 <= idx < KglGenEnum::getEntriesCount() )
|
|
* \~Japanese @param [in] idx インデックス(0 <= idx < KglGenEnum::getEntriesCount() )
|
|
* \~English @param [out] entry EnumEntries.
|
|
* \~Japanese @param [out] entry EnumEntries。
|
|
* \~English @retval KGL_ERR_NOT_INITIALIZED An invalid KglGenParameter.
|
|
* \~Japanese @retval KGL_ERR_NOT_INITIALIZED 無効なKglGenParameterです。
|
|
* \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred.
|
|
* \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。
|
|
* \~English @retval KGL_SUCCESS Success.
|
|
* \~Japanese @retval KGL_SUCCESS 成功。
|
|
*/
|
|
virtual KglResult getEntryByIndex(int64_t idx, const KglGenEnumEntry** entry) const = 0;
|
|
|
|
//------------------------------------------------------------
|
|
/**
|
|
* \~English @brief Retrieves the feature (EnumEntries).
|
|
* \~Japanese @brief Feature(EnumEntries)を取得します。
|
|
* \~English @param [in] val value.
|
|
* \~Japanese @param [in] val EnumEntriesの値。
|
|
* \~English @param [out] entry EnumEntries.
|
|
* \~Japanese @param [out] entry EnumEntries。
|
|
* \~English @retval KGL_ERR_NOT_INITIALIZED An invalid KglGenParameter.
|
|
* \~Japanese @retval KGL_ERR_NOT_INITIALIZED 無効なKglGenParameterです。
|
|
* \~English @retval KGL_NOT_FOUND The specified EnumEntries cannot be found.
|
|
* \~Japanese @retval KGL_NOT_FOUND 指定されたEnumEntriesが見つかりません。
|
|
* \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred.
|
|
* \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。
|
|
* \~English @retval KGL_SUCCESS Success.
|
|
* \~Japanese @retval KGL_SUCCESS 成功。
|
|
*/
|
|
virtual KglResult getEntryByValue(int64_t val, const KglGenEnumEntry** entry) const = 0;
|
|
|
|
private:
|
|
|
|
KglGenEnum( const KglGenEnum&);
|
|
const KglGenEnum &operator=( const KglGenEnum&);
|
|
};
|
|
|
|
}; //end of namespace Keyence
|
|
|