[PATCH v1] libcamera: camera_manager: Take camera id in `std::string_view`

Kieran Bingham kieran.bingham at ideasonboard.com
Mon Mar 31 18:14:03 CEST 2025


Quoting Barnabás Pőcze (2025-03-31 16:09:00)
> Do not force the caller to have an `std::string` object as a
> simple string view is sufficient to do the lookup.
> 
> Signed-off-by: Barnabás Pőcze <barnabas.pocze at ideasonboard.com>

Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

> ---
>  include/libcamera/camera_manager.h   | 3 ++-
>  src/libcamera/camera_manager.cpp     | 2 +-
>  src/py/libcamera/py_camera_manager.h | 2 +-
>  3 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/include/libcamera/camera_manager.h b/include/libcamera/camera_manager.h
> index b50df7825..27835500f 100644
> --- a/include/libcamera/camera_manager.h
> +++ b/include/libcamera/camera_manager.h
> @@ -9,6 +9,7 @@
>  
>  #include <memory>
>  #include <string>
> +#include <string_view>
>  #include <sys/types.h>
>  #include <vector>
>  
> @@ -31,7 +32,7 @@ public:
>         void stop();
>  
>         std::vector<std::shared_ptr<Camera>> cameras() const;
> -       std::shared_ptr<Camera> get(const std::string &id);
> +       std::shared_ptr<Camera> get(std::string_view id);
>  
>         static const std::string &version() { return version_; }
>  
> diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
> index b28bd0bd2..e62e7193c 100644
> --- a/src/libcamera/camera_manager.cpp
> +++ b/src/libcamera/camera_manager.cpp
> @@ -381,7 +381,7 @@ std::vector<std::shared_ptr<Camera>> CameraManager::cameras() const
>   *
>   * \return Shared pointer to Camera object or nullptr if camera not found
>   */
> -std::shared_ptr<Camera> CameraManager::get(const std::string &id)
> +std::shared_ptr<Camera> CameraManager::get(std::string_view id)
>  {
>         Private *const d = _d();
>  
> diff --git a/src/py/libcamera/py_camera_manager.h b/src/py/libcamera/py_camera_manager.h
> index 3574db236..af69b915e 100644
> --- a/src/py/libcamera/py_camera_manager.h
> +++ b/src/py/libcamera/py_camera_manager.h
> @@ -20,7 +20,7 @@ public:
>         ~PyCameraManager();
>  
>         pybind11::list cameras();
> -       std::shared_ptr<Camera> get(const std::string &name) { return cameraManager_->get(name); }
> +       std::shared_ptr<Camera> get(std::string_view name) { return cameraManager_->get(name); }
>  
>         static const std::string &version() { return CameraManager::version(); }
>  
> -- 
> 2.49.0
>


More information about the libcamera-devel mailing list