Show a cover letter.

GET /api/covers/10198/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 10198,
    "url": "https://patchwork.libcamera.org/api/covers/10198/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/10198/",
    "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": "<20201022135605.614240-1-kieran.bingham@ideasonboard.com>",
    "date": "2020-10-22T13:56:00",
    "name": "[libcamera-devel,0/5] 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/10198/mbox/",
    "series": [
        {
            "id": 1404,
            "url": "https://patchwork.libcamera.org/api/series/1404/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1404",
            "date": "2020-10-22T13:56:00",
            "name": "Delete Copy-Move-Assign",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/1404/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/10198/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 7A910C3D3C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 22 Oct 2020 13:56:11 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E8E7261439;\n\tThu, 22 Oct 2020 15:56:10 +0200 (CEST)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7532960352\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 22 Oct 2020 15:56:09 +0200 (CEST)",
            "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 0396753;\n\tThu, 22 Oct 2020 15:56:08 +0200 (CEST)"
        ],
        "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=\"KkcerVNT\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1603374969;\n\tbh=t5cjg7gJa3fAL9EhQ+AconxPBptSItlYdsl3qak1ZTI=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=KkcerVNTtq/lS6zoT/0nYKjR5ntlawKt1P2nroJH8f1KS1hfmLhhZtuMI83N+QS7c\n\tSnaSq3Rw1nOMQMWZZ/gy0cAiRpMZQMT8zfi7Ul+e73rYX1v6HGdy9wilGczgdN0eQG\n\tFeEP6Hz8/Bs3ySCPuKxjvDsiljSUXN2ZJjAci3cE=",
        "From": "Kieran Bingham <kieran.bingham@ideasonboard.com>",
        "To": "libcamera devel <libcamera-devel@lists.libcamera.org>",
        "Date": "Thu, 22 Oct 2020 14:56:00 +0100",
        "Message-Id": "<20201022135605.614240-1-kieran.bingham@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "MIME-Version": "1.0",
        "Subject": "[libcamera-devel] [PATCH 0/5] 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 discussed providing a non-copyable class which could be inherited or\nthe 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 DELETE_COPY_MOVE_AND_ASSIGN.\n   Where the existing copy/assignment deletion occured in public:, the\n   DELETE_COPY_MOVE_AND_ASSIGN addition has been placed in private: so\n   that Doxygen does not complain. (and it shoudl 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.\n\n\nKieran Bingham (5):\n  libcamera: Provide class.h\n  libcamera: buffer: Utilise DELETE_COPY_MOVE_AND_ASSIGN\n  libcamera: media_object: Utilise DELETE_COPY_AND_ASSIGN\n  libcamera: Utilise DELETE_COPY_AND_ASSIGN\n  libcamera: MappedBuffer: Delete copy and assignment\n\n include/libcamera/buffer.h                    | 10 +++---\n include/libcamera/camera.h                    |  7 ++--\n include/libcamera/camera_manager.h            |  5 +--\n include/libcamera/class.h                     | 35 +++++++++++++++++++\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     |  8 +++--\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                 |  1 +\n include/libcamera/request.h                   |  5 +--\n 17 files changed, 87 insertions(+), 39 deletions(-)\n create mode 100644 include/libcamera/class.h"
}