diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-01-18 02:10:18 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-01-23 22:36:08 +0200 |
commit | b6467bd9c67f69fe5023cb524391b8f1fc5c44c4 (patch) | |
tree | ff98ca8d0e925a34c8f360b78c23308e4167fc97 /include | |
parent | ce2ea24fb46f924bda14721c7cee0d2e4ea0d74f (diff) |
libcamera: camera_manager: Move private data members to private implementation
Use the d-pointer idiom ([1], [2]) to hide the private data members from
the CameraManager class interface. This will ease maintaining ABI
compatibility, and prepares for the implementation of the CameraManager
class threading model.
[1] https://wiki.qt.io/D-Pointer
[2] https://en.cppreference.com/w/cpp/language/pimpl
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'include')
-rw-r--r-- | include/libcamera/camera_manager.h | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/include/libcamera/camera_manager.h b/include/libcamera/camera_manager.h index 09419766..068afd58 100644 --- a/include/libcamera/camera_manager.h +++ b/include/libcamera/camera_manager.h @@ -7,7 +7,6 @@ #ifndef __LIBCAMERA_CAMERA_MANAGER_H__ #define __LIBCAMERA_CAMERA_MANAGER_H__ -#include <map> #include <memory> #include <string> #include <sys/types.h> @@ -18,9 +17,7 @@ namespace libcamera { class Camera; -class DeviceEnumerator; class EventDispatcher; -class PipelineHandler; class CameraManager : public Object { @@ -33,7 +30,7 @@ public: int start(); void stop(); - const std::vector<std::shared_ptr<Camera>> &cameras() const { return cameras_; } + const std::vector<std::shared_ptr<Camera>> &cameras() const; std::shared_ptr<Camera> get(const std::string &name); std::shared_ptr<Camera> get(dev_t devnum); @@ -46,13 +43,11 @@ public: EventDispatcher *eventDispatcher(); private: - std::unique_ptr<DeviceEnumerator> enumerator_; - std::vector<std::shared_ptr<PipelineHandler>> pipes_; - std::vector<std::shared_ptr<Camera>> cameras_; - std::map<dev_t, std::weak_ptr<Camera>> camerasByDevnum_; - static const std::string version_; static CameraManager *self_; + + class Private; + std::unique_ptr<Private> p_; }; } /* namespace libcamera */ |