29 #ifndef AVT_VMBAPI_USERSHAREDPOINTERDEFINES_H
30 #define AVT_VMBAPI_USERSHAREDPOINTERDEFINES_H
56 #define SP_DECL( T ) std::shared_ptr<T>
58 #define SP_SET( sp, rawPtr ) (sp).reset( rawPtr )
60 #define SP_RESET( sp ) (sp).reset()
62 #define SP_ISEQUAL( sp1, sp2 ) ( (sp1) == (sp2) )
64 #define SP_ISNULL( sp ) ( NULL == (sp) )
66 #define SP_ACCESS( sp ) (sp).get()
68 #define SP_DYN_CAST( sp, T ) std::dynamic_pointer_cast<T>(sp)
72 typedef SP_DECL( Interface ) InterfacePtr;
75 typedef SP_DECL( Camera ) CameraPtr;
78 typedef SP_DECL( Feature ) FeaturePtr;
80 class FeatureContainer;
81 typedef SP_DECL( FeatureContainer ) FeatureContainerPtr;
83 class IFeatureObserver;
84 typedef SP_DECL( IFeatureObserver ) IFeatureObserverPtr;
87 typedef SP_DECL( Frame ) FramePtr;
90 typedef SP_DECL( FrameHandler ) FrameHandlerPtr;
93 typedef SP_DECL( IFrameObserver ) IFrameObserverPtr;
96 typedef SP_DECL( AncillaryData ) AncillaryDataPtr;
98 class ConstAncillaryData;
99 typedef SP_DECL(
const AncillaryData ) ConstAncillaryDataPtr;
101 class ICameraFactory;
102 typedef SP_DECL( ICameraFactory ) ICameraFactoryPtr;
104 class ICameraListObserver;
105 typedef SP_DECL( ICameraListObserver ) ICameraListObserverPtr;
107 class IInterfaceListObserver;
108 typedef SP_DECL( IInterfaceListObserver ) IInterfaceListObserverPtr;
111 typedef SP_DECL( Mutex ) MutexPtr;
114 typedef SP_DECL( BasicLockable ) BasicLockablePtr;
119 #endif //AVT_VMBAPI_USERSHAREDPOINTERDEFINES_H