29#ifndef GENAPI_IENUMERATIONT_H
30#define GENAPI_IENUMERATIONT_H
36#include <GenApi/Compatibility.h>
39namespace GENAPI_NAMESPACE
49 template<
typename EnumT >
57 virtual void SetValue(EnumT Value,
bool Verify =
true) = 0;
68 virtual EnumT
GetValue(
bool Verify =
false,
bool IgnoreCache =
false) = 0;
97 template<
class EnumT >
98 class CEnumerationTRef :
public IEnumerationT< EnumT >,
public IReference,
public IEnumReference
111 virtual void SetReference( IBase *ptr )
121 virtual void SetNumEnums(
int NumEnums )
123 m_EnumExists.resize(NumEnums);
124 m_EnumValues.resize(NumEnums);
126 std::vector<bool>::iterator ptr;
127 for(ptr = m_EnumExists.begin(); ptr != m_EnumExists.end(); ptr++)
139 if( ptrEnumEntry.IsValid() )
141 m_EnumExists[Index] =
true;
142 m_EnumValues[Index] = ptrEnumEntry->GetValue();
156 return m_Ptr->GetAccessMode();
166 virtual INode* GetNode()
169 return m_Ptr->GetNode();
178 return m_Ptr->ToString(Verify, IgnoreCache);
187 return m_Ptr->FromString(ValueStr, Verify);
193 bool IsValueCacheValid()
const
196 return m_Ptr->IsValueCacheValid();
206 virtual void GetSymbolics(StringList_t & Symbolics)
209 return m_Ptr->GetSymbolics(Symbolics);
215 virtual void GetEntries(NodeList_t & Entries)
218 return m_Ptr->GetEntries(Entries);
227 return m_Ptr->operator=(ValueStr);
236 return m_Ptr->operator=(pValueStr);
242 virtual void SetIntValue(int64_t Value,
bool Verify =
true)
245 m_Ptr->SetIntValue(Value, Verify);
254 return m_Ptr->operator*();
260 virtual int64_t GetIntValue(
bool Verify =
false,
bool IgnoreCache =
false)
263 return m_Ptr->GetIntValue(Verify, IgnoreCache);
272 return m_Ptr->GetEntryByName(Symbolic);
279 virtual IEnumEntry *GetEntry(
const int64_t IntValue)
282 return m_Ptr->GetEntry(IntValue);
288 virtual IEnumEntry *GetCurrentEntry(
bool Verify =
false,
bool IgnoreCache =
false)
291 return m_Ptr->GetCurrentEntry(Verify, IgnoreCache);
301 virtual void SetValue(EnumT Value,
bool Verify =
true)
305 if( m_EnumExists[Value] )
307 int64_t EnumValue = m_EnumValues[Value];
308 m_Ptr->SetIntValue(EnumValue, Verify);
325 virtual EnumT GetValue(
bool Verify =
false,
bool IgnoreCache =
false)
329 int64_t IntValue = m_Ptr->GetIntValue(Verify, IgnoreCache);
330 std::vector<int64_t>::iterator ptr;
331 for (
unsigned int idx = 0; idx < m_EnumValues.size(); ++idx )
333 if( m_EnumExists[idx] && m_EnumValues[idx] == IntValue)
343 virtual EnumT operator()()
349 virtual IEnumEntry *GetEntry(
const EnumT Value)
353 if( m_EnumExists[Value] )
355 int64_t EnumValue = m_EnumValues[Value];
356 return m_Ptr->GetEntry(EnumValue);
370 std::vector<int64_t > m_EnumValues;
373 std::vector<bool > m_EnumExists;
declspec's to be used for GenApi Windows dll
virtual IBoolean & operator=(bool Value)
Set node value.
Definition IBoolean.h:62
virtual bool operator()() const
Get node value.
Definition IBoolean.h:77
virtual bool GetValue(bool Verify=false, bool IgnoreCache=false) const =0
Get node value.
Definition of interface IEnumeration.
virtual IEnumEntry * GetEntry(const int64_t IntValue)=0
Get an entry node by its IntValue.
virtual IEnumEntry * GetCurrentEntry(bool Verify=false, bool IgnoreCache=false)=0
Get the current entry.
Definition of template CPointer.
Common types used in the public GenApi interface.
A string class which is a clone of std::string.
Definition GCString.h:51
#define ACCESS_EXCEPTION
Fires a access exception, e.g. throw ACCESS_EXCEPTION("Not everybody")
Definition GCException.h:252
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT IEnumeration
Interface for enumeration properties.
Definition IEnumeration.h:58
GENICAM_INTERFACE INode
Interface common to all nodes.
Definition ICategory.h:49
GENICAM_INTERFACE GENAPI_DECL_ABSTRACT IEnumEntry
Interface of single enum value.
Definition IEnumEntry.h:58
CPointer< IEnumEntry > CEnumEntryPtr
SmartPointer for IEnumEntry interface pointer.
Definition Pointer.h:182
enum GENAPI_NAMESPACE::_EAccessMode EAccessMode
@ NI
Not implemented.
Definition Types.h:54