SharedPointerDefines.h
Go to the documentation of this file.
00001 /*=============================================================================
00002   Copyright (C) 2012 Allied Vision Technologies.  All Rights Reserved.
00003 
00004   Redistribution of this file, in original or modified form, without
00005   prior written consent of Allied Vision Technologies is prohibited.
00006 
00007 -------------------------------------------------------------------------------
00008 
00009   File:        SharedPointerDefines.h
00010 
00011   Description: Definition of macros for using the standard shared pointer 
00012                (std::tr1) for Vimba CPP API.
00013                (This include file is for internal use only.)
00014 
00015 -------------------------------------------------------------------------------
00016 
00017   THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
00018   WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF TITLE,
00019   NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR  PURPOSE ARE
00020   DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 
00021   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
00022   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00023   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED  
00024   AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 
00025   TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
00026   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00027 
00028 =============================================================================*/
00029 
00030 #ifndef AVT_VMBAPI_SHAREDPOINTERDEFINES_H
00031 #define AVT_VMBAPI_SHAREDPOINTERDEFINES_H
00032 
00033 //
00034 // If your version of STL does not provide a shared pointer implementation please see UserSharedPointerDefines.h for information on 
00035 // how to use another shared pointer than std::shared_ptr.
00036 //
00037 
00038 #ifndef USER_SHARED_POINTER
00039 
00040     #include <VimbaCPP/Include/SharedPointer.h>
00041 
00042     namespace AVT {
00043     namespace VmbAPI {
00044 
00045     #define SP_DECL( T )            AVT::VmbAPI::shared_ptr<T>
00046     #define SP_SET( sp, rawPtr )    (sp).reset( (rawPtr) )
00047     #define SP_RESET( sp )          (sp).reset()
00048     #define SP_ISEQUAL( sp1, sp2 )  ( (sp1) == (sp2) )
00049     #define SP_ISNULL( sp )         ( NULL == (sp) )
00050     #define SP_ACCESS( sp )         (sp).get()
00051     #define SP_DYN_CAST( sp, T )    AVT::VmbAPI::dynamic_pointer_cast<T>(sp)
00052 
00053     // These are all uses of a SP_DECL shared_ptr declaration
00054     class Interface;
00055     typedef SP_DECL( Interface ) InterfacePtr;
00056 
00057     class Camera;
00058     typedef SP_DECL( Camera ) CameraPtr;
00059 
00060     class Feature;
00061     typedef SP_DECL( Feature ) FeaturePtr;
00062 
00063     class FeatureContainer;
00064     typedef SP_DECL( FeatureContainer ) FeatureContainerPtr;
00065 
00066     class IFeatureObserver;
00067     typedef SP_DECL( IFeatureObserver ) IFeatureObserverPtr;
00068 
00069     class Frame;
00070     typedef SP_DECL( Frame ) FramePtr;
00071 
00072     class FrameHandler;
00073     typedef SP_DECL( FrameHandler ) FrameHandlerPtr;
00074 
00075     class IFrameObserver;
00076     typedef SP_DECL( IFrameObserver ) IFrameObserverPtr;
00077 
00078     class AncillaryData;
00079     typedef SP_DECL( AncillaryData )            AncillaryDataPtr;
00080     typedef SP_DECL( const AncillaryData )      ConstAncillaryDataPtr;
00081 
00082     class ICameraFactory;
00083     typedef SP_DECL( ICameraFactory ) ICameraFactoryPtr;
00084 
00085     class ICameraListObserver;
00086     typedef SP_DECL( ICameraListObserver ) ICameraListObserverPtr;
00087 
00088     class IInterfaceListObserver;
00089     typedef SP_DECL( IInterfaceListObserver ) IInterfaceListObserverPtr;
00090 
00091     class Mutex;
00092     typedef SP_DECL( Mutex ) MutexPtr;
00093 
00094     class BasicLockable;
00095     typedef SP_DECL( BasicLockable ) BasicLockablePtr;
00096 
00097     }}
00098 
00099 #else
00100     #include <VimbaCPP/Include/UserSharedPointerDefines.h>
00101 #endif
00102 
00103 
00104 #endif // AVT_VMBAPI_SHAREDPOINTERDEFINES_H


avt_vimba_camera
Author(s): Miquel Massot , Allied Vision Technologies
autogenerated on Thu Aug 27 2015 12:29:49