{"id":1530,"url":"https://patchwork.libcamera.org/api/covers/1530/?format=json","web_url":"https://patchwork.libcamera.org/cover/1530/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20190630162514.20522-1-niklas.soderlund@ragnatech.se>","date":"2019-06-30T16:25:11","name":"[libcamera-devel,v2,0/3] libcamera: ipc: unix: Add a IPC mechanism based on Unix sockets","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/?format=json","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"mbox":"https://patchwork.libcamera.org/cover/1530/mbox/","series":[{"id":382,"url":"https://patchwork.libcamera.org/api/series/382/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=382","date":"2019-06-30T16:25:12","name":"libcamera: ipc: unix: Add a IPC mechanism based on Unix sockets","version":2,"mbox":"https://patchwork.libcamera.org/series/382/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/1530/comments/","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from bin-mail-out-06.binero.net (bin-mail-out-06.binero.net\n\t[195.74.38.229])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 65C3861E16\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 30 Jun 2019 18:25:31 +0200 (CEST)","from bismarck.berto.se (unknown [145.14.112.32])\n\tby bin-vsp-out-01.atm.binero.net (Halon) with ESMTPA\n\tid 9c58cfd6-9b53-11e9-8ab4-005056917a89;\n\tSun, 30 Jun 2019 18:25:09 +0200 (CEST)"],"X-Halon-ID":"9c58cfd6-9b53-11e9-8ab4-005056917a89","Authorized-sender":"niklas@soderlund.pp.se","From":"=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","To":"libcamera-devel@lists.libcamera.org","Date":"Sun, 30 Jun 2019 18:25:11 +0200","Message-Id":"<20190630162514.20522-1-niklas.soderlund@ragnatech.se>","X-Mailer":"git-send-email 2.21.0","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v2 0/3] libcamera: ipc: unix: Add a IPC\n\tmechanism based on Unix sockets","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Sun, 30 Jun 2019 16:25:31 -0000"},"content":"Hello,\n\nThis series adds an IPC mechanism to pass data and file descriptors\nbetween two processes. The interface is asynchronous and bi-directional.\n\n* Changes since v1\n- Add a bugfix for Timer which prevented the test case to function \n  properly.\n- Add destructor to close the IPC channel.\n- Rename attach() to bind().\n- Add isBound() mehtod.\n- Rework signal emitted for incoming data to Signal<IPCUnixSocket *> \n  readyRead.\n- Make payload argument in send() const at the cost of adding a \n  const_cast().\n- Dropped unused master_ property.\n- Updated documentation, thanks Laurent!\n- Add a call() method in the test case to simplify test logic.\n- Use dup() instead of opening the same file path multiple times.\n\n* Changes since RFC\n- Switch to an event notifications and signals for the ingress code\n  path, making the interface asynchronous.\n- Removed any protocol helpers in the IPC object, a protocol should be\n  implemented on top of the IPC.\n- Added documentation.\n- Switched to SOCK_DGRAM.\n- Send both data and file descriptors in the same sendmsg().\n- Fixed spelling and silly errors in the code.\n- Merged test case in a single binary.\n\nNiklas Söderlund (3):\n  libcamera: timer: Stop timer when it is deleted\n  libcamera: ipc: unix: Add a IPC mechanism based on Unix sockets\n  test: ipc: unix: Add test for IPCUnixSocket\n\n include/libcamera/timer.h              |   1 +\n src/libcamera/include/ipc_unixsocket.h |  57 ++++\n src/libcamera/ipc_unixsocket.cpp       | 312 ++++++++++++++++++++\n src/libcamera/meson.build              |   2 +\n src/libcamera/timer.cpp                |   5 +\n test/ipc/meson.build                   |  12 +\n test/ipc/unixsocket.cpp                | 390 +++++++++++++++++++++++++\n test/meson.build                       |   1 +\n 8 files changed, 780 insertions(+)\n create mode 100644 src/libcamera/include/ipc_unixsocket.h\n create mode 100644 src/libcamera/ipc_unixsocket.cpp\n create mode 100644 test/ipc/meson.build\n create mode 100644 test/ipc/unixsocket.cpp"}