Documentation: application-developer: Recommend unique_ptr for CameraManager

The CameraManager object should be deleted when it is no longer used to
prevent it from leaking.

When the application closes, the memory will be released, but it would
show up in reports from memory validation tools such as valgrind if not
handled correctly.

Recommend best-practices in the guide and ensure it is automatically
cleaned up when the CameraManager goes out of scope.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Kieran Bingham
2021-07-28 09:13:54 +01:00
parent d2783171dd
commit e590ca3004

View File

@@ -61,11 +61,15 @@ variable for the camera to support the event call back later:
std::shared_ptr<Camera> camera;
Create a Camera Manager instance at the beginning of the main function, and then
start it. An application should only create a single Camera Manager instance.
start it. An application must only create a single Camera Manager instance.
The CameraManager can be stored in a unique_ptr to automate deleting the
instance when it is no longer used, but care must be taken to ensure all
cameras are released explicitly before this happens.
.. code:: cpp
CameraManager *cm = new CameraManager();
std::unique_ptr<CameraManager> cm = std::make_unique<CameraManager>();
cm->start();
During the application initialization, the Camera Manager is started to
@@ -560,6 +564,9 @@ uses, so needs to do the following:
return 0;
In this instance the CameraManager will automatically be deleted by the
unique_ptr implementation when it goes out of scope.
Build and run instructions
--------------------------