[libcamera-devel] [PATCH v3 4/7] libcamera: media_object: Utilise LIBCAMERA_DISABLE_COPY_AND_MOVE
Kieran Bingham
kieran.bingham at ideasonboard.com
Fri Feb 12 14:30:53 CET 2021
Convert MediaLink, MediaPad, and MediaEntity to declare
LIBCAMERA_DISABLE_COPY_AND_MOVE. These classes already deleted their
copy constructor but not the assignment operator.
They should also not be movable, so expand to fully disable both copying
and moving.
Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
---
include/libcamera/internal/media_object.h | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/include/libcamera/internal/media_object.h b/include/libcamera/internal/media_object.h
index 2b336961f98d..1c82c27928a8 100644
--- a/include/libcamera/internal/media_object.h
+++ b/include/libcamera/internal/media_object.h
@@ -12,6 +12,8 @@
#include <linux/media.h>
+#include <libcamera/class.h>
+
namespace libcamera {
class MediaDevice;
@@ -47,11 +49,12 @@ public:
int setEnabled(bool enable);
private:
+ LIBCAMERA_DISABLE_COPY_AND_MOVE(MediaLink)
+
friend class MediaDevice;
MediaLink(const struct media_v2_link *link,
MediaPad *source, MediaPad *sink);
- MediaLink(const MediaLink &) = delete;
MediaPad *source_;
MediaPad *sink_;
@@ -69,10 +72,11 @@ public:
void addLink(MediaLink *link);
private:
+ LIBCAMERA_DISABLE_COPY_AND_MOVE(MediaPad)
+
friend class MediaDevice;
MediaPad(const struct media_v2_pad *pad, MediaEntity *entity);
- MediaPad(const MediaPad &) = delete;
unsigned int index_;
MediaEntity *entity_;
@@ -99,11 +103,12 @@ public:
int setDeviceNode(const std::string &deviceNode);
private:
+ LIBCAMERA_DISABLE_COPY_AND_MOVE(MediaEntity)
+
friend class MediaDevice;
MediaEntity(MediaDevice *dev, const struct media_v2_entity *entity,
unsigned int major = 0, unsigned int minor = 0);
- MediaEntity(const MediaEntity &) = delete;
void addPad(MediaPad *pad);
--
2.25.1
More information about the libcamera-devel
mailing list