From 1c9f2d7889b1e158bfac320cc270f0f9314b779e Mon Sep 17 00:00:00 2001
From: Kieran Bingham <kieran.bingham@ideasonboard.com>
Date: Tue, 13 Apr 2021 12:19:34 +0100
Subject: libcamera: ipa_proxy: Document ProxyState

The documentation for the ProxyState and tracking variable was not added
when the IPA was extended with a state machine.

Add it.

Fixes: 70238ceca5b2 ("utils: ipc: proxy: Track IPA with a state machine")
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
---
 src/libcamera/ipa_proxy.cpp | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/src/libcamera/ipa_proxy.cpp b/src/libcamera/ipa_proxy.cpp
index ec4c2cc8..b70fde58 100644
--- a/src/libcamera/ipa_proxy.cpp
+++ b/src/libcamera/ipa_proxy.cpp
@@ -32,6 +32,19 @@ LOG_DEFINE_CATEGORY(IPAProxy)
  * Isolate IPA into separate process.
  */
 
+/**
+ * \enum IPAProxy::ProxyState
+ * \brief Identifies the available operational states of the proxy
+ *
+ * \var IPAProxy::ProxyStopped
+ * \brief The proxy is not active and only synchronous operations are permitted
+ * \var IPAProxy::ProxyStopping
+ * \brief No new tasks can be submitted to the proxy, however existing events
+ * can be completed
+ * \var IPAProxy::ProxyRunning
+ * \brief The Proxy is active and asynchronous tasks may be queued
+ */
+
 /**
  * \brief Construct an IPAProxy instance
  * \param[in] ipam The IPA module
@@ -213,4 +226,15 @@ std::string IPAProxy::resolvePath(const std::string &file) const
  * construction.
  */
 
+/**
+ * \var IPAProxy::state_
+ * \brief Current state of the IPAProxy
+ *
+ * The IPAProxy can be Running, Stopped, or Stopping.
+ *
+ * This state provides a means to ensure that asynchronous methods are only
+ * called while the proxy is running, and prevent new tasks being submitted
+ * while still enabling events to complete when the IPAProxy is stopping.
+ */
+
 } /* namespace libcamera */
-- 
cgit v1.2.1