Cover Letter Detail
Show a cover letter.
GET /api/covers/11260/?format=api
{ "id": 11260, "url": "https://patchwork.libcamera.org/api/covers/11260/?format=api", "web_url": "https://patchwork.libcamera.org/cover/11260/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20210212133056.873230-1-kieran.bingham@ideasonboard.com>", "date": "2021-02-12T13:30:49", "name": "[libcamera-devel,v3,0/7] Delete Copy-Move-Assign", "submitter": { "id": 4, "url": "https://patchwork.libcamera.org/api/people/4/?format=api", "name": "Kieran Bingham", "email": "kieran.bingham@ideasonboard.com" }, "mbox": "https://patchwork.libcamera.org/cover/11260/mbox/", "series": [ { "id": 1685, "url": "https://patchwork.libcamera.org/api/series/1685/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1685", "date": "2021-02-12T13:30:49", "name": "Delete Copy-Move-Assign", "version": 3, "mbox": "https://patchwork.libcamera.org/series/1685/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/11260/comments/", "headers": { "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>", "X-Original-To": "parsemail@patchwork.libcamera.org", "Delivered-To": "parsemail@patchwork.libcamera.org", "Received": [ "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id AE531BD160\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Feb 2021 13:31:02 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2232C6378B;\n\tFri, 12 Feb 2021 14:31:02 +0100 (CET)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 835C363772\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Feb 2021 14:31:00 +0100 (CET)", "from Q.local (cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net\n\t[86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 07FBF8B5;\n\tFri, 12 Feb 2021 14:30:59 +0100 (CET)" ], "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"dTC3xFHe\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1613136660;\n\tbh=sHpASkBeARwOizkkF7VKdswmeap1tjxgG9MWgupBzKg=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=dTC3xFHebTJN1A3iV+55X+RcpFLRmONZ2heFJcHpwWZyGQoCthzjXHjlras7mMTl2\n\tXthEGexznVja6so9JfAYlUZsXc9ZfldlVHT4HNovzN8OXq7GuUSsCLC6Soi6B++Meq\n\tjwS95Cygg+u12hZR058uBz2BeVC773qQ6gciulpo=", "From": "Kieran Bingham <kieran.bingham@ideasonboard.com>", "To": "libcamera devel <libcamera-devel@lists.libcamera.org>", "Date": "Fri, 12 Feb 2021 13:30:49 +0000", "Message-Id": "<20210212133056.873230-1-kieran.bingham@ideasonboard.com>", "X-Mailer": "git-send-email 2.25.1", "MIME-Version": "1.0", "Subject": "[libcamera-devel] [PATCH v3 0/7] Delete Copy-Move-Assign", "X-BeenThere": "libcamera-devel@lists.libcamera.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "<libcamera-devel.lists.libcamera.org>", "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>", "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>", "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>", "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>", "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "Here's a series which has been niggling me on my task list since the\ntopic came up which highlighted that the non-copyability of the\nFrameBufferAllocator had been incorrectly implemented.\n\nWe previously discussed providing a non-copyable class which could be inherited\nor the addition of a macro.\n\nI've chosen to go down the macro route, because I think its clearer,\neasier to customise, and doesn't extend the inheritance (and thus\nincrease the size) of classes.\n\nAlong the way, the following tasks have occured:\n\n - Classes which delete their copy constructor and copy assignment\n operator, have had those replaced by LIBCAMERA_DISABLE_COPY_AND_MOVE.\n Where the existing copy/assignment deletion occured in public:, the\n LIBCAMERA_DISABLE_COPY_AND_MOVE addition has been placed in private: so\n that Doxygen does not complain. (and it should have the same effect)\n\n - The Buffer class deletes all of the copy, and move constructor and\n assignment operators, so this has been kept. But as the only class\n which goes this far, it seems to stand out on its own. I have simply\n converted to the new usage, I didn't want to change any functionality\n here.\n\n - Media objects deleted only their copy construtor. I believe this to\n be an oversight, as if the copy constructor is deleted, then the copy\n assignment operator should also be deleted. Therefore I see this macro\n as a win here.\n\n - MappedBuffer : This did not delete it's copy constructor, and I\n believe it should have - so I've added it. I have not done a thorough\n search of the tree to find other instances that should also delete\n anything yet though.\n\nI'm sure that more classes could be tightened up with the addition of\nthese restrictions where necessary, or perhaps other variants might crop\nup. I'm not sure yet, but this can get the ball rolling in that case.\n\n\nSince the first v1 posting of this series, DELETE_COPY_MOVE_AND_ASSIGN\nis renamed to LIBCAMERA_DISABLE_COPY_AND_MOVE (using disable instead of\ndeleted), and 'assign' has been removed from the macro names.\n\nThe extensible class was also merged during this time, so it is first\nrenamed to be a generic class.h and these macros are added there.\n\nV3 brings in cleanups, added documentation examples, and removes the semi-colon\nfrom all usages throughout the series.\n\nKieran Bingham (7):\n libcamera: Move extensible to class\n libcamera: class: Provide move and copy disablers\n libcamera: buffer: Utilise LIBCAMERA_DISABLE_COPY_AND_MOVE\n libcamera: media_object: Utilise LIBCAMERA_DISABLE_COPY_AND_MOVE\n libcamera: controls: Utilise LIBCAMERA_DISABLE_COPY_AND_MOVE\n libcamera: Utilise LIBCAMERA_DISABLE_COPY\n libcamera: MappedBuffer: Disable copy and assignment\n\n include/libcamera/buffer.h | 10 ++-\n include/libcamera/camera.h | 7 +-\n include/libcamera/camera_manager.h | 6 +-\n include/libcamera/{extensible.h => class.h} | 26 +++++--\n include/libcamera/controls.h | 7 +-\n include/libcamera/framebuffer_allocator.h | 7 +-\n include/libcamera/internal/buffer.h | 4 ++\n .../libcamera/internal/byte_stream_buffer.h | 4 +-\n include/libcamera/internal/camera_sensor.h | 6 +-\n include/libcamera/internal/file.h | 6 +-\n include/libcamera/internal/log.h | 6 +-\n include/libcamera/internal/media_object.h | 11 ++-\n include/libcamera/internal/pipeline_handler.h | 4 +-\n include/libcamera/internal/v4l2_subdevice.h | 5 +-\n include/libcamera/internal/v4l2_videodevice.h | 6 +-\n include/libcamera/meson.build | 2 +-\n include/libcamera/request.h | 5 +-\n src/libcamera/{extensible.cpp => class.cpp} | 68 +++++++++++++++++--\n src/libcamera/meson.build | 2 +-\n 19 files changed, 141 insertions(+), 51 deletions(-)\n rename include/libcamera/{extensible.h => class.h} (66%)\n rename src/libcamera/{extensible.cpp => class.cpp} (77%)" }