Autovector.h
Go to the documentation of this file.
00001 //-----------------------------------------------------------------------------
00002 //  (c) 2012 by Teledyne DALSA
00003 //  Section: Digital Imaging
00004 //  Project: GenAPI
00005 //  Author:  Eric Bourbonnais
00006 //
00007 //  License: This file is published under the license of the EMVA GenICam  Standard Group. 
00008 //  A text file describing the legal terms is included in  your installation as 'GenICam_license.pdf'. 
00009 //  If for some reason you are missing  this file please contact the EMVA or visit the website
00010 //  (http://www.genicam.org) for a full copy.
00011 // 
00012 //  THIS SOFTWARE IS PROVIDED BY THE EMVA GENICAM STANDARD GROUP "AS IS"
00013 //  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,  
00014 //  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR  
00015 //  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE EMVA GENICAM STANDARD  GROUP 
00016 //  OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL, 
00017 //  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT  LIMITED TO, 
00018 //  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,  DATA, OR PROFITS; 
00019 //  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY  THEORY OF LIABILITY, 
00020 //  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE) 
00021 //  ARISING IN ANY WAY OUT OF THE USE  OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
00022 //  POSSIBILITY OF SUCH DAMAGE.
00023 //-----------------------------------------------------------------------------
00024 //
00031 
00032 
00033 #ifndef GENAPI_AUTOVECTOR_H
00034 #define GENAPI_AUTOVECTOR_H
00035 
00036 #include <vector>
00037 #include <Base/GCTypes.h>
00038 #include <GenApi/GenApiDll.h>
00039 
00040 #if defined (_WIN32)
00041     typedef long ATOMIC_VARIABLE;
00042 #elif (defined(__GNUC__) && (defined (__linux__)) || defined (__APPLE__)) || defined(VXWORKS)
00043     typedef uint32_t ATOMIC_VARIABLE;
00044 #else
00045 #   error Unsupported platform
00046 #endif
00047 
00048 namespace GENAPI_NAMESPACE
00049 {
00054     class GENAPI_DECL int64_autovector_t
00055     {
00056     public:
00057         explicit  int64_autovector_t();
00058                   int64_autovector_t( const int64_autovector_t& obj );
00059         explicit  int64_autovector_t( size_t n );
00060         virtual  ~int64_autovector_t( void );
00061 
00062         int64_autovector_t& operator=( const int64_autovector_t& obj );
00063 
00064         int64_t&       operator[]( size_t uiIndex );
00065         const int64_t& operator[]( size_t uiIndex ) const;
00066         size_t         size( void ) const;
00067     protected:
00068         std::vector<int64_t>* _pv;
00069         ATOMIC_VARIABLE* _pCount;
00070     };
00071     
00076     class GENAPI_DECL double_autovector_t
00077     {
00078     public:
00079         explicit  double_autovector_t();
00080                   double_autovector_t( const double_autovector_t& obj );
00081         explicit  double_autovector_t( size_t n );
00082         virtual  ~double_autovector_t( void );
00083 
00084         double_autovector_t& operator=( const double_autovector_t& obj );
00085 
00086         double&       operator[]( size_t uiIndex );
00087         const double& operator[]( size_t uiIndex ) const;
00088         size_t        size( void )const;
00089     protected:
00090         std::vector<double>* _pv;
00091         ATOMIC_VARIABLE* _pCount;
00092     };
00093 }
00094 
00095 #endif // GENAPI_AUTOVECTOR_H


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