Enumeration.h
Go to the documentation of this file.
00001 //-----------------------------------------------------------------------------
00002 //  (c) 2006 by Basler Vision Technologies
00003 //  Section: Vision Components
00004 //  Project: GenApi
00005 //  Author:  Margret Albrecht
00006 //  $Header$
00007 //
00008 //  License: This file is published under the license of the EMVA GenICam  Standard Group.
00009 //  A text file describing the legal terms is included in  your installation as 'GenICam_license.pdf'.
00010 //  If for some reason you are missing  this file please contact the EMVA or visit the website
00011 //  (http://www.genicam.org) for a full copy.
00012 //
00013 //  THIS SOFTWARE IS PROVIDED BY THE EMVA GENICAM STANDARD GROUP "AS IS"
00014 //  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00015 //  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00016 //  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE EMVA GENICAM STANDARD  GROUP
00017 //  OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL,
00018 //  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT  LIMITED TO,
00019 //  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,  DATA, OR PROFITS;
00020 //  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY  THEORY OF LIABILITY,
00021 //  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE)
00022 //  ARISING IN ANY WAY OUT OF THE USE  OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00023 //  POSSIBILITY OF SUCH DAMAGE.
00024 //-----------------------------------------------------------------------------
00031 #ifndef GENAPI_ENUMERATION_H
00032 #define GENAPI_ENUMERATION_H
00033 
00034 #include "Base/GCStringVector.h"
00035 #include "Node.h"
00036 #include "../Pointer.h"
00037 #include "BaseT.h"
00038 #include "ValueT.h"
00039 #include "EnumerationT.h"
00040 #include "PolyReference.h"
00041 
00042 namespace GENAPI_NAMESPACE
00043 {
00044 
00045     //*************************************************************
00046     // CEnumeration class
00047     //*************************************************************
00048 
00049     class CEnumerationImpl : public CNodeImpl, public IEnumeration
00050     {
00051     public:
00053         CEnumerationImpl();
00054 
00055         //-------------------------------------------------------------
00057 
00059         virtual bool Poll( int64_t ElapsedTime );
00060 
00061     protected:
00063         virtual void InternalGetSymbolics(StringList_t& Symbolics);
00064 
00066         virtual void InternalGetEntries(NodeList_t & Entries);
00067 
00068         virtual EAccessMode InternalGetAccessMode() const;
00069 
00071         virtual EInterfaceType InternalGetPrincipalInterfaceType() const;
00072 
00074         virtual GENICAM_NAMESPACE::gcstring InternalToString(bool Verify = false, bool IgnoreCache = false);
00075 
00077         virtual void InternalFromString(const GENICAM_NAMESPACE::gcstring& ValueStr, bool Verify = true);
00078 
00080         virtual void InternalSetIntValue(int64_t Value, bool Verify = true);
00081 
00083         virtual int64_t InternalGetIntValue(bool Verify = false, bool IgnoreCache = false );
00084 
00086         virtual IEnumEntry *InternalGetEntryByName(const GENICAM_NAMESPACE::gcstring& Symbolic);
00087 
00089         virtual IEnumEntry *InternalGetEntry(const int64_t IntValue);
00090 
00092         virtual bool InternalIsValueCacheValid() const;
00093 
00095         virtual EYesNo InternalIsAccessModeCacheable() const;
00096 
00097     public:
00098 
00099         virtual void FinalConstruct();
00100 
00101         virtual void SetProperty( CProperty &Property );
00102         virtual bool GetProperty( CNodeDataMap *pNodeDataMap, CPropertyID::EProperty_ID_t PropertyID, CNodeData::PropertyVector_t &PropertyList ) const;
00103 
00104     protected:
00105         //-------------------------------------------------------------
00106         // Member variables
00107         //-------------------------------------------------------------
00108 
00110         typedef enum _EStatus
00111         {
00112             statusUninitialized,
00113             statusIdle,
00114             statusBusy
00115         } EStatus;
00116 
00118         EStatus m_Status;
00119 
00121         typedef std::map<GENICAM_NAMESPACE::gcstring, IEnumEntry*> EnumEntrySymbolicMap_t;
00122 
00124         EnumEntrySymbolicMap_t m_EnumEntrySymbolicMap;
00125 
00127         typedef std::map<int64_t, IEnumEntry*> EnumEntryIntValueMap_t;
00128 
00130         EnumEntryIntValueMap_t m_EnumEntryIntValueMap;
00131 
00133         NodeList_t m_EnumEntryList;
00134 
00136         CIntegerPolyRef m_Value;
00137 
00139         int64_t m_SelfClearingValue;
00140 
00141     private:
00142         void InternalSetIntValue( IEnumEntry* pEnumEntry, int64_t Value, bool Verify );
00143     };
00144 
00145     class CEnumeration : public BaseT< ValueT< EnumerationT < NodeT < CEnumerationImpl> > > >
00146     {
00147     };
00148 
00149 }
00150 
00151 #endif // ifndef GENAPI_ENUMERATION_H


rc_genicam_api
Author(s): Heiko Hirschmueller
autogenerated on Thu Jun 6 2019 18:42:46