summaryrefslogtreecommitdiff
path: root/src/libcamera/event_notifier.cpp
diff options
context:
space:
mode:
authorKieran Bingham <kieran.bingham@ideasonboard.com>2021-06-25 02:06:55 +0100
committerKieran Bingham <kieran.bingham@ideasonboard.com>2021-06-25 16:11:10 +0100
commitf9ee72430735f749fb7d8fd4a8fe01ca88dc1f88 (patch)
tree3de5662a1ad584c4e69449fe8b00cdfedae8399c /src/libcamera/event_notifier.cpp
parentb304bc013ef8022131ef0a146f20c6bad7ac45d5 (diff)
libcamera/base: Move event_notifier to base
Move the event notifier, and associated header updates. Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/libcamera/event_notifier.cpp')
-rw-r--r--src/libcamera/event_notifier.cpp141
1 files changed, 0 insertions, 141 deletions
diff --git a/src/libcamera/event_notifier.cpp b/src/libcamera/event_notifier.cpp
deleted file mode 100644
index 784016a9..00000000
--- a/src/libcamera/event_notifier.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-/* SPDX-License-Identifier: LGPL-2.1-or-later */
-/*
- * Copyright (C) 2019, Google Inc.
- *
- * event_notifier.cpp - File descriptor event notifier
- */
-
-#include "libcamera/internal/event_notifier.h"
-
-#include <libcamera/camera_manager.h>
-
-#include <libcamera/base/event_dispatcher.h>
-#include <libcamera/base/message.h>
-#include <libcamera/base/thread.h>
-
-/**
- * \file event_notifier.h
- * \brief File descriptor event notifier
- */
-
-namespace libcamera {
-
-/**
- * \class EventNotifier
- * \brief Notify of activity on a file descriptor
- *
- * The EventNotifier models a file descriptor event source that can be
- * monitored. It is created with the file descriptor to be monitored and the
- * type of event, and is enabled by default. It will emit the \ref activated
- * signal whenever an event of the monitored type occurs on the file descriptor.
- *
- * Supported type of events are EventNotifier::Read, EventNotifier::Write and
- * EventNotifier::Exception. The type is specified when constructing the
- * notifier, and can be retrieved using the type() function. To listen to
- * multiple event types on the same file descriptor multiple notifiers must be
- * created.
- *
- * The notifier can be disabled with the setEnabled() function. When the notifier
- * is disabled it ignores events and does not emit the \ref activated signal.
- * The notifier can then be re-enabled with the setEnabled() function.
- *
- * Creating multiple notifiers of the same type for the same file descriptor is
- * not allowed and results in undefined behaviour.
- *
- * Notifier events are detected and dispatched from the
- * EventDispatcher::processEvents() function.
- */
-
-/**
- * \enum EventNotifier::Type
- * Type of file descriptor event to listen for.
- * \var EventNotifier::Read
- * Data is available to be read from the file descriptor
- * \var EventNotifier::Write
- * Data can be written to the file descriptor
- * \var EventNotifier::Exception
- * An exception has occurred on the file descriptor
- */
-
-/**
- * \brief Construct an event notifier with a file descriptor and event type
- * \param[in] fd The file descriptor to monitor
- * \param[in] type The event type to monitor
- * \param[in] parent The parent Object
- */
-EventNotifier::EventNotifier(int fd, Type type, Object *parent)
- : Object(parent), fd_(fd), type_(type), enabled_(false)
-{
- setEnabled(true);
-}
-
-EventNotifier::~EventNotifier()
-{
- setEnabled(false);
-}
-
-/**
- * \fn EventNotifier::type()
- * \brief Retrieve the type of the event being monitored
- * \return The type of the event
- */
-
-/**
- * \fn EventNotifier::fd()
- * \brief Retrieve the file descriptor being monitored
- * \return The file descriptor
- */
-
-/**
- * \fn EventNotifier::enabled()
- * \brief Retrieve the notifier state
- * \return True if the notifier is enabled, or false otherwise
- * \sa setEnabled()
- */
-
-/**
- * \brief Enable or disable the notifier
- * \param[in] enable True to enable the notifier, false to disable it
- *
- * This function enables or disables the notifier. A disabled notifier ignores
- * events and does not emit the \ref activated signal.
- *
- * \context This function is \threadbound.
- */
-void EventNotifier::setEnabled(bool enable)
-{
- if (enabled_ == enable)
- return;
-
- enabled_ = enable;
-
- EventDispatcher *dispatcher = thread()->eventDispatcher();
- if (enable)
- dispatcher->registerEventNotifier(this);
- else
- dispatcher->unregisterEventNotifier(this);
-}
-
-/**
- * \var EventNotifier::activated
- * \brief Signal emitted when the event occurs
- *
- * This signal is emitted when the event \ref type() occurs on the file
- * descriptor monitored by the notifier. The notifier pointer is passed as a
- * parameter.
- */
-
-void EventNotifier::message(Message *msg)
-{
- if (msg->type() == Message::ThreadMoveMessage) {
- if (enabled_) {
- setEnabled(false);
- invokeMethod(&EventNotifier::setEnabled,
- ConnectionTypeQueued, true);
- }
- }
-
- Object::message(msg);
-}
-
-} /* namespace libcamera */