Message ID | 20210827023829.5871-6-laurent.pinchart@ideasonboard.com |
---|---|
State | Accepted |
Commit | 3f662ae3c0c6e6564f1abe09d7d297e34f77b4fb |
Headers | show |
Series |
|
Related | show |
Hi Laurent, On 8/27/21 8:08 AM, Laurent Pinchart wrote: > In many cases, the emitter object passed as a pointer from signals to > slots is also available as a class member. Use the class member when > this occurs, to prepare for removal of the emitter object pointer from > signals. > > In test/event.cpp, this additionally requires moving the EventNotifier > to a class member. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com> > --- > src/libcamera/ipc_pipe_unixsocket.cpp | 4 ++-- > test/event-thread.cpp | 4 ++-- > test/event.cpp | 17 +++++++++++------ > test/ipa/ipa_interface_test.cpp | 4 ++-- > test/ipc/unixsocket.cpp | 8 ++++---- > test/ipc/unixsocket_ipc.cpp | 4 ++-- > .../module_ipa_proxy_worker.cpp.tmpl | 4 ++-- > 7 files changed, 25 insertions(+), 20 deletions(-) > > diff --git a/src/libcamera/ipc_pipe_unixsocket.cpp b/src/libcamera/ipc_pipe_unixsocket.cpp > index 4511775fb467..38bcc30a21ed 100644 > --- a/src/libcamera/ipc_pipe_unixsocket.cpp > +++ b/src/libcamera/ipc_pipe_unixsocket.cpp > @@ -82,10 +82,10 @@ int IPCPipeUnixSocket::sendAsync(const IPCMessage &data) > return 0; > } > > -void IPCPipeUnixSocket::readyRead(IPCUnixSocket *socket) > +void IPCPipeUnixSocket::readyRead([[maybe_unused]] IPCUnixSocket *socket) > { > IPCUnixSocket::Payload payload; > - int ret = socket->receive(&payload); > + int ret = socket_->receive(&payload); > if (ret) { > LOG(IPCPipe, Error) << "Receive message failed" << ret; > return; > diff --git a/test/event-thread.cpp b/test/event-thread.cpp > index 575261664c2f..12021710ef41 100644 > --- a/test/event-thread.cpp > +++ b/test/event-thread.cpp > @@ -66,9 +66,9 @@ public: > } > > private: > - void readReady(EventNotifier *notifier) > + void readReady([[maybe_unused]] EventNotifier *notifier) > { > - size_ = read(notifier->fd(), data_, sizeof(data_)); > + size_ = read(notifier_->fd(), data_, sizeof(data_)); > notified_ = true; > } > > diff --git a/test/event.cpp b/test/event.cpp > index c2274344b7f0..e338335c11e8 100644 > --- a/test/event.cpp > +++ b/test/event.cpp > @@ -22,14 +22,16 @@ using namespace libcamera; > class EventTest : public Test > { > protected: > - void readReady(EventNotifier *notifier) > + void readReady([[maybe_unused]] EventNotifier *notifier) > { > - size_ = read(notifier->fd(), data_, sizeof(data_)); > + size_ = read(notifier_->fd(), data_, sizeof(data_)); > notified_ = true; > } > > int init() > { > + notifier_ = nullptr; > + > return pipe(pipefd_); > } > > @@ -40,8 +42,8 @@ protected: > Timer timeout; > ssize_t ret; > > - EventNotifier readNotifier(pipefd_[0], EventNotifier::Read); > - readNotifier.activated.connect(this, &EventTest::readReady); > + notifier_ = new EventNotifier(pipefd_[0], EventNotifier::Read); > + notifier_->activated.connect(this, &EventTest::readReady); > > /* Test read notification with data. */ > memset(data_, 0, sizeof(data_)); > @@ -76,7 +78,7 @@ protected: > > /* Test read notifier disabling. */ > notified_ = false; > - readNotifier.setEnabled(false); > + notifier_->setEnabled(false); > > ret = write(pipefd_[1], data.data(), data.size()); > if (ret < 0) { > @@ -95,7 +97,7 @@ protected: > > /* Test read notifier enabling. */ > notified_ = false; > - readNotifier.setEnabled(true); > + notifier_->setEnabled(true); > > timeout.start(100); > dispatcher->processEvents(); > @@ -111,6 +113,8 @@ protected: > > void cleanup() > { > + delete notifier_; > + > close(pipefd_[0]); > close(pipefd_[1]); > } > @@ -118,6 +122,7 @@ protected: > private: > int pipefd_[2]; > > + EventNotifier *notifier_; > bool notified_; > char data_[16]; > ssize_t size_; > diff --git a/test/ipa/ipa_interface_test.cpp b/test/ipa/ipa_interface_test.cpp > index ee9f26510784..0ee51f71fd87 100644 > --- a/test/ipa/ipa_interface_test.cpp > +++ b/test/ipa/ipa_interface_test.cpp > @@ -153,9 +153,9 @@ protected: > } > > private: > - void readTrace(EventNotifier *notifier) > + void readTrace([[maybe_unused]] EventNotifier *notifier) > { > - ssize_t s = read(notifier->fd(), &trace_, sizeof(trace_)); > + ssize_t s = read(notifier_->fd(), &trace_, sizeof(trace_)); > if (s < 0) { > int ret = errno; > cerr << "Failed to read from IPA test FIFO at '" > diff --git a/test/ipc/unixsocket.cpp b/test/ipc/unixsocket.cpp > index aa35c8f071f1..6507fb12d74b 100644 > --- a/test/ipc/unixsocket.cpp > +++ b/test/ipc/unixsocket.cpp > @@ -68,12 +68,12 @@ public: > } > > private: > - void readyRead(IPCUnixSocket *ipc) > + void readyRead([[maybe_unused]] IPCUnixSocket *ipc) > { > IPCUnixSocket::Payload message, response; > int ret; > > - ret = ipc->receive(&message); > + ret = ipc_.receive(&message); > if (ret) { > cerr << "Receive message failed: " << ret << endl; > return; > @@ -447,14 +447,14 @@ private: > return 0; > } > > - void readyRead(IPCUnixSocket *ipc) > + void readyRead([[maybe_unused]] IPCUnixSocket *ipc) > { > if (!callResponse_) { > cerr << "Read ready without expecting data, fail." << endl; > return; > } > > - if (ipc->receive(callResponse_)) { > + if (ipc_.receive(callResponse_)) { > cerr << "Receive message failed" << endl; > return; > } > diff --git a/test/ipc/unixsocket_ipc.cpp b/test/ipc/unixsocket_ipc.cpp > index 6fe7fd9b8fc5..60317a4956b8 100644 > --- a/test/ipc/unixsocket_ipc.cpp > +++ b/test/ipc/unixsocket_ipc.cpp > @@ -65,12 +65,12 @@ public: > } > > private: > - void readyRead(IPCUnixSocket *ipc) > + void readyRead([[maybe_unused]] IPCUnixSocket *ipc) > { > IPCUnixSocket::Payload message; > int ret; > > - ret = ipc->receive(&message); > + ret = ipc_.receive(&message); > if (ret) { > cerr << "Receive message failed: " << ret << endl; > return; > diff --git a/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl b/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl > index 8a88bd467da7..b4cd1aa9e823 100644 > --- a/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl > +++ b/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl > @@ -57,10 +57,10 @@ public: > > ~{{proxy_worker_name}}() {} > > - void readyRead(IPCUnixSocket *socket) > + void readyRead([[maybe_unused]] IPCUnixSocket *socket) > { > IPCUnixSocket::Payload _message; > - int _retRecv = socket->receive(&_message); > + int _retRecv = socket_.receive(&_message); > if (_retRecv) { > LOG({{proxy_worker_name}}, Error) > << "Receive message failed: " << _retRecv;
diff --git a/src/libcamera/ipc_pipe_unixsocket.cpp b/src/libcamera/ipc_pipe_unixsocket.cpp index 4511775fb467..38bcc30a21ed 100644 --- a/src/libcamera/ipc_pipe_unixsocket.cpp +++ b/src/libcamera/ipc_pipe_unixsocket.cpp @@ -82,10 +82,10 @@ int IPCPipeUnixSocket::sendAsync(const IPCMessage &data) return 0; } -void IPCPipeUnixSocket::readyRead(IPCUnixSocket *socket) +void IPCPipeUnixSocket::readyRead([[maybe_unused]] IPCUnixSocket *socket) { IPCUnixSocket::Payload payload; - int ret = socket->receive(&payload); + int ret = socket_->receive(&payload); if (ret) { LOG(IPCPipe, Error) << "Receive message failed" << ret; return; diff --git a/test/event-thread.cpp b/test/event-thread.cpp index 575261664c2f..12021710ef41 100644 --- a/test/event-thread.cpp +++ b/test/event-thread.cpp @@ -66,9 +66,9 @@ public: } private: - void readReady(EventNotifier *notifier) + void readReady([[maybe_unused]] EventNotifier *notifier) { - size_ = read(notifier->fd(), data_, sizeof(data_)); + size_ = read(notifier_->fd(), data_, sizeof(data_)); notified_ = true; } diff --git a/test/event.cpp b/test/event.cpp index c2274344b7f0..e338335c11e8 100644 --- a/test/event.cpp +++ b/test/event.cpp @@ -22,14 +22,16 @@ using namespace libcamera; class EventTest : public Test { protected: - void readReady(EventNotifier *notifier) + void readReady([[maybe_unused]] EventNotifier *notifier) { - size_ = read(notifier->fd(), data_, sizeof(data_)); + size_ = read(notifier_->fd(), data_, sizeof(data_)); notified_ = true; } int init() { + notifier_ = nullptr; + return pipe(pipefd_); } @@ -40,8 +42,8 @@ protected: Timer timeout; ssize_t ret; - EventNotifier readNotifier(pipefd_[0], EventNotifier::Read); - readNotifier.activated.connect(this, &EventTest::readReady); + notifier_ = new EventNotifier(pipefd_[0], EventNotifier::Read); + notifier_->activated.connect(this, &EventTest::readReady); /* Test read notification with data. */ memset(data_, 0, sizeof(data_)); @@ -76,7 +78,7 @@ protected: /* Test read notifier disabling. */ notified_ = false; - readNotifier.setEnabled(false); + notifier_->setEnabled(false); ret = write(pipefd_[1], data.data(), data.size()); if (ret < 0) { @@ -95,7 +97,7 @@ protected: /* Test read notifier enabling. */ notified_ = false; - readNotifier.setEnabled(true); + notifier_->setEnabled(true); timeout.start(100); dispatcher->processEvents(); @@ -111,6 +113,8 @@ protected: void cleanup() { + delete notifier_; + close(pipefd_[0]); close(pipefd_[1]); } @@ -118,6 +122,7 @@ protected: private: int pipefd_[2]; + EventNotifier *notifier_; bool notified_; char data_[16]; ssize_t size_; diff --git a/test/ipa/ipa_interface_test.cpp b/test/ipa/ipa_interface_test.cpp index ee9f26510784..0ee51f71fd87 100644 --- a/test/ipa/ipa_interface_test.cpp +++ b/test/ipa/ipa_interface_test.cpp @@ -153,9 +153,9 @@ protected: } private: - void readTrace(EventNotifier *notifier) + void readTrace([[maybe_unused]] EventNotifier *notifier) { - ssize_t s = read(notifier->fd(), &trace_, sizeof(trace_)); + ssize_t s = read(notifier_->fd(), &trace_, sizeof(trace_)); if (s < 0) { int ret = errno; cerr << "Failed to read from IPA test FIFO at '" diff --git a/test/ipc/unixsocket.cpp b/test/ipc/unixsocket.cpp index aa35c8f071f1..6507fb12d74b 100644 --- a/test/ipc/unixsocket.cpp +++ b/test/ipc/unixsocket.cpp @@ -68,12 +68,12 @@ public: } private: - void readyRead(IPCUnixSocket *ipc) + void readyRead([[maybe_unused]] IPCUnixSocket *ipc) { IPCUnixSocket::Payload message, response; int ret; - ret = ipc->receive(&message); + ret = ipc_.receive(&message); if (ret) { cerr << "Receive message failed: " << ret << endl; return; @@ -447,14 +447,14 @@ private: return 0; } - void readyRead(IPCUnixSocket *ipc) + void readyRead([[maybe_unused]] IPCUnixSocket *ipc) { if (!callResponse_) { cerr << "Read ready without expecting data, fail." << endl; return; } - if (ipc->receive(callResponse_)) { + if (ipc_.receive(callResponse_)) { cerr << "Receive message failed" << endl; return; } diff --git a/test/ipc/unixsocket_ipc.cpp b/test/ipc/unixsocket_ipc.cpp index 6fe7fd9b8fc5..60317a4956b8 100644 --- a/test/ipc/unixsocket_ipc.cpp +++ b/test/ipc/unixsocket_ipc.cpp @@ -65,12 +65,12 @@ public: } private: - void readyRead(IPCUnixSocket *ipc) + void readyRead([[maybe_unused]] IPCUnixSocket *ipc) { IPCUnixSocket::Payload message; int ret; - ret = ipc->receive(&message); + ret = ipc_.receive(&message); if (ret) { cerr << "Receive message failed: " << ret << endl; return; diff --git a/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl b/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl index 8a88bd467da7..b4cd1aa9e823 100644 --- a/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl +++ b/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl @@ -57,10 +57,10 @@ public: ~{{proxy_worker_name}}() {} - void readyRead(IPCUnixSocket *socket) + void readyRead([[maybe_unused]] IPCUnixSocket *socket) { IPCUnixSocket::Payload _message; - int _retRecv = socket->receive(&_message); + int _retRecv = socket_.receive(&_message); if (_retRecv) { LOG({{proxy_worker_name}}, Error) << "Receive message failed: " << _retRecv;
In many cases, the emitter object passed as a pointer from signals to slots is also available as a class member. Use the class member when this occurs, to prepare for removal of the emitter object pointer from signals. In test/event.cpp, this additionally requires moving the EventNotifier to a class member. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> --- src/libcamera/ipc_pipe_unixsocket.cpp | 4 ++-- test/event-thread.cpp | 4 ++-- test/event.cpp | 17 +++++++++++------ test/ipa/ipa_interface_test.cpp | 4 ++-- test/ipc/unixsocket.cpp | 8 ++++---- test/ipc/unixsocket_ipc.cpp | 4 ++-- .../module_ipa_proxy_worker.cpp.tmpl | 4 ++-- 7 files changed, 25 insertions(+), 20 deletions(-)