libcamera
v0.3.2+116-83c5ad0f
Supporting cameras in Linux since 2019
|
IPA Proxy. More...
Public Types | |
enum | ProxyState { ProxyStopped, ProxyStopping, ProxyRunning } |
Identifies the available operational states of the proxy. More... | |
Public Member Functions | |
IPAProxy (IPAModule *ipam) | |
Construct an IPAProxy instance. More... | |
bool | isValid () const |
Check if the IPAProxy instance is valid. More... | |
std::string | configurationFile (const std::string &name, const std::string &fallbackName=std::string()) const |
Retrieve the absolute path to an IPA configuration file. More... | |
Protected Member Functions | |
std::string | resolvePath (const std::string &file) const |
Find a valid full path for a proxy worker for a given executable name. More... | |
Protected Attributes | |
bool | valid_ |
Flag to indicate if the IPAProxy instance is valid. More... | |
ProxyState | state_ |
Current state of the IPAProxy. More... | |
IPA Proxy.
Isolate IPA into separate process.
Identifies the available operational states of the proxy.
libcamera::IPAProxy::IPAProxy | ( | IPAModule * | ipam | ) |
Construct an IPAProxy instance.
[in] | ipam | The IPA module |
std::string libcamera::IPAProxy::configurationFile | ( | const std::string & | name, |
const std::string & | fallbackName = std::string() |
||
) | const |
Retrieve the absolute path to an IPA configuration file.
[in] | name | The configuration file name |
[in] | fallbackName | The name of a fallback configuration file |
This function locates the configuration file for an IPA and returns its absolute path. It searches the following directories, in order:
The system directories are not searched if libcamera is not installed.
Within each of those directories, the function looks for a subdirectory named after the IPA module name, as reported in IPAModuleInfo::name, and for a file named name within that directory. The name is IPA-specific.
If the file named name is not found and fallbackName is non-empty then the whole search is repeated for fallbackName.
|
inline |
|
protected |
Find a valid full path for a proxy worker for a given executable name.
[in] | file | File name of proxy worker executable |
A proxy worker's executable could be found in either the global installation directory, or in the paths specified by the environment variable LIBCAMERA_IPA_PROXY_PATH. This function checks the global install directory first, then LIBCAMERA_IPA_PROXY_PATH in order, and returns the full path to the proxy worker executable that is specified by file. The proxy worker executable shall have exec permission.
|
protected |
Current state of the IPAProxy.
The IPAProxy can be Running, Stopped, or Stopping.
This state provides a means to ensure that asynchronous functions 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.
|
protected |
Flag to indicate if the IPAProxy instance is valid.
A IPAProxy instance is valid if the IPA interface is successfully created in isolation, and IPC is successfully set up.
This flag can be read via IPAProxy::isValid().
Implementations of the IPAProxy class should set this flag upon successful construction.