summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKieran Bingham <kieran.bingham@ideasonboard.com>2021-07-28 09:13:54 +0100
committerKieran Bingham <kieran.bingham@ideasonboard.com>2021-08-05 08:53:59 +0100
commit9b4990a249985d4f8238c808036d9d6b7cf81362 (patch)
tree70862299656df3e0db106255099f23ef800af8ed
parent55775494fef449faadbb1a57bca245bc8e482725 (diff)
Documentation: application-developer: Recommend unique_ptr for CameraManagerdev
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. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r--Documentation/guides/application-developer.rst9
1 files changed, 8 insertions, 1 deletions
diff --git a/Documentation/guides/application-developer.rst b/Documentation/guides/application-developer.rst
index 31557a60..51c8256e 100644
--- a/Documentation/guides/application-developer.rst
+++ b/Documentation/guides/application-developer.rst
@@ -63,9 +63,13 @@ variable for the camera to support the event call back later:
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.
+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.
+
.. 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
--------------------------