From 21ff749a790386f87e767a690c77948a6474ceaa Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Thu, 17 Jan 2019 16:23:25 +0200 Subject: libcamera: camera: Handle camera objects through shared pointers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Camera class is explicitly reference-counted to manage the lifetime of camera objects. Replace this open-coded implementation with usage of the std::shared_ptr<> class. This API change prevents pipeline handlers from subclassing the Camera class. This isn't deemed to be an issue. Mark the class final to make this explicit. Signed-off-by: Laurent Pinchart Reviewed-by: Jacopo Mondi Reviewed-by: Niklas Söderlund --- include/libcamera/camera.h | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'include/libcamera/camera.h') diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h index 9a7579d6..2ea1a688 100644 --- a/include/libcamera/camera.h +++ b/include/libcamera/camera.h @@ -7,22 +7,25 @@ #ifndef __LIBCAMERA_CAMERA_H__ #define __LIBCAMERA_CAMERA_H__ +#include #include namespace libcamera { -class Camera +class Camera final { public: - Camera(const std::string &name); + static std::shared_ptr create(const std::string &name); + + Camera(const Camera &) = delete; + void operator=(const Camera &) = delete; const std::string &name() const; - void get(); - void put(); private: - virtual ~Camera() { }; - int ref_; + explicit Camera(const std::string &name); + ~Camera(); + std::string name_; }; -- cgit v1.2.1