IntKey.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:  Hartmut Nebelung
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_INTKEY_H
00032 #define GENAPI_INTKEY_H
00033 
00034 #include "Node.h"
00035 #include "IEEE1212Parser.h"
00036 #include "BaseT.h"
00037 #include "ValueT.h"
00038 #include "IntegerT.h"
00039 #include "NodeT.h"
00040 
00041 namespace GENAPI_NAMESPACE
00042 {
00043     //*************************************************************
00044     // CIntKey class
00045     //*************************************************************
00046     class CIEEE1212Parser;
00051     class CIntKeyImpl : public IInteger, public CNodeImpl
00052     {
00053     public:
00055         CIntKeyImpl();
00056 
00057     private:
00059         CIntKeyImpl& operator=( const CIntKeyImpl& rhs );
00060 
00061 
00062     protected:
00064         virtual EAccessMode InternalGetAccessMode() const;
00065 
00067         virtual EInterfaceType InternalGetPrincipalInterfaceType() const
00068         {
00069             return intfIInteger;
00070         }
00071 
00072     public:
00073         //-------------------------------------------------------------
00074         // Implementation of INodePrivate
00075         //-------------------------------------------------------------
00077         // \{
00078         virtual void SetProperty(CProperty &Property);
00079         virtual bool GetProperty(CNodeDataMap *pNodeDataMap, CPropertyID::EProperty_ID_t PropertyID, CNodeData::PropertyVector_t &PropertyList) const;
00080         virtual void FinalConstruct();
00081         // \}
00082 
00083         //-------------------------------------------------------------
00084         // IInteger implementation
00085         //-------------------------------------------------------------
00086 
00087     protected:
00089         #pragma BullseyeCoverage off
00090         virtual void InternalSetValue(int64_t /*Value*/, bool /* Verify = true*/)
00091         {
00092             //assert(false);
00093             throw ACCESS_EXCEPTION("IntKey is read only." );
00094         }
00095         #pragma BullseyeCoverage on
00096 
00098         virtual int64_t InternalGetValue(bool Verify = false, bool IgnoreCache = false);
00099 
00101         virtual int64_t InternalGetMin() const
00102         {
00103             return m_Min;
00104         }
00105 
00107         virtual int64_t InternalGetMax() const
00108         {
00109             return m_Max;
00110         }
00111 
00112 
00114         virtual int64_t InternalGetInc() const
00115         {
00116             return 1LL;
00117         }
00118 
00120         const int64_autovector_t InternalGetListOfValidValues()
00121         {
00122             return int64_autovector_t();
00123         }
00124 
00126         virtual  ERepresentation InternalGetRepresentation() const
00127         {
00128             if( m_Representation != _UndefinedRepresentation )
00129                 return m_Representation;
00130             else
00131                 return PureNumber;
00132         }
00133 
00135         virtual GENICAM_NAMESPACE::gcstring InternalGetUnit()
00136         {
00137             return GENICAM_NAMESPACE::gcstring();
00138         }
00139 
00140 
00141     protected:
00142         // inititialize when childs are initialized
00143         //-------------------------------------------------------------
00144         // Memeber variables
00145         //-------------------------------------------------------------
00146 
00148         const int64_t  m_Min;
00149 
00151         const int64_t  m_Max;
00152 
00154         uint16_t m_Key;
00155 
00157         int64_t m_Value;
00158 
00160         CIEEE1212Parser *m_pParser;
00161 
00163         const ERepresentation m_Representation;
00164 
00165     };
00166 
00167     class CIntKey : public BaseT< ValueT< NodeT< IntegerT< CIntKeyImpl > > > >
00168     {
00169     private:
00171         CIntKey& operator=( const CIntKey& rhs );
00172     };
00173 
00174 }
00175 
00176 #endif // GENAPI_INTKEY_H


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