Integer.h
Go to the documentation of this file.
00001 //-----------------------------------------------------------------------------
00002 //  (c) 2006-2008 by Basler Vision Technologies
00003 //  Section: Vision Components
00004 //  Project: GenApi
00005 //  Author:  Fritz Dierks
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 //-----------------------------------------------------------------------------
00030 #ifndef GENAPI_INTEGER_H
00031 #define GENAPI_INTEGER_H
00032 
00033 #include "../IInteger.h"
00034 #include "Node.h"
00035 #include "BaseT.h"
00036 #include "ValueT.h"
00037 #include "IntegerT.h"
00038 #include "NodeT.h"
00039 #include "PrivateTypes.h"
00040 #include "PolyReference.h"
00041 #include <map>
00042 
00043 namespace GENAPI_NAMESPACE
00044 {
00045 
00050     class CIntegerImpl
00051         : public IInteger
00052         , public CNodeImpl
00053     {
00054     public:
00055         //-------------------------------------------------------------
00057 
00058 
00059             CIntegerImpl();
00061 
00062     protected:
00063         //-------------------------------------------------------------
00065 
00066 
00067             virtual EAccessMode InternalGetAccessMode() const;
00068 
00070             virtual EInterfaceType InternalGetPrincipalInterfaceType() const
00071             {
00072                 return intfIInteger;
00073             }
00074 
00076 
00077     protected:
00078         //-------------------------------------------------------------
00080 
00081 
00082             virtual void InternalSetValue(int64_t Value, bool Verify = true);
00083 
00085             virtual int64_t InternalGetValue(bool Verify = false, bool IgnoreCache = false );
00086 
00088             virtual int64_t InternalGetMin();
00089 
00091             virtual int64_t InternalGetMax();
00092 
00094             virtual int64_t InternalGetInc();
00095 
00097             virtual const int64_autovector_t InternalGetListOfValidValues();
00098 
00100             virtual  ERepresentation InternalGetRepresentation();
00101 
00103             virtual GENICAM_NAMESPACE::gcstring InternalGetUnit();
00105     public:
00106         //-------------------------------------------------------------
00108 
00109 
00110         virtual void FinalConstruct();
00111 
00113         virtual ECachingMode InternalGetCachingMode() const;
00115 
00116         virtual void SetInvalid(ESetInvalidMode simMode);
00117 
00118     public:
00119 
00120     virtual void SetProperty( CProperty &Property );
00121     virtual bool GetProperty( CNodeDataMap *pNodeDataMap, CPropertyID::EProperty_ID_t PropertyID, CNodeData::PropertyVector_t &PropertyList ) const;
00122     
00123 
00124 
00125     protected:
00126         //-------------------------------------------------------------
00128 
00129 
00130             std::list<CIntegerPolyRef> m_ValuesCopy;
00131 
00133             std::list<CIntegerPolyRef>::iterator m_pMainValue;
00134 
00136             std::map<int64_t, CIntegerPolyRef> m_ValuesIndexed;
00137 
00139             CIntegerPolyRef m_ValueDefault;
00140 
00142             CIntegerPolyRef m_Min;
00143 
00145             CIntegerPolyRef m_Max;
00146 
00148             CIntegerPolyRef m_Inc;
00149 
00151             CIntegerPolyRef m_Index;
00152 
00154             ERepresentation m_Representation;
00155 
00157             GENICAM_NAMESPACE::gcstring m_Unit;
00158 
00160             int64_autovector_impl m_ValidValueSet;
00161 
00163     };
00164 
00169     class CInteger : public BaseT< ValueT< IntegerT< NodeT < CIntegerImpl> > > >
00170     {
00171     };
00172 
00173 }
00174 
00175 #endif // GENAPI_INTEGER_H


rc_visard_driver
Author(s): Heiko Hirschmueller , Christian Emmerich , Felix Ruess
autogenerated on Thu Jun 6 2019 20:43:05