mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-13 15:29:45 +03:00
ipa: raspberrypi: Return an error code from Algorithm::read()
When encountering errors, the Algorithm::read() function either uses LOG(Fatal) or throws exceptions from the boost property_tree functions. To prepare for replacing boost JSON parse with the YamlParser class, give the Algorithm::read() function the ability to return an error code, and propagate it all the way to the IPA module init() function. All algorithm classes return a hardcoded 0 value for now, subsequent commits will change that. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Naushir Patuck <naush@raspberrypi.com> Tested-by: Naushir Patuck <naush@raspberrypi.com>
This commit is contained in:
parent
0c84c67e39
commit
f357b1bf6e
31 changed files with 151 additions and 75 deletions
|
@ -32,19 +32,23 @@ Controller::Controller(char const *jsonFilename)
|
|||
|
||||
Controller::~Controller() {}
|
||||
|
||||
void Controller::read(char const *filename)
|
||||
int Controller::read(char const *filename)
|
||||
{
|
||||
boost::property_tree::ptree root;
|
||||
boost::property_tree::read_json(filename, root);
|
||||
for (auto const &keyAndValue : root) {
|
||||
Algorithm *algo = createAlgorithm(keyAndValue.first.c_str());
|
||||
if (algo) {
|
||||
algo->read(keyAndValue.second);
|
||||
int ret = algo->read(keyAndValue.second);
|
||||
if (ret)
|
||||
return ret;
|
||||
algorithms_.push_back(AlgorithmPtr(algo));
|
||||
} else
|
||||
LOG(RPiController, Warning)
|
||||
<< "No algorithm found for \"" << keyAndValue.first << "\"";
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Algorithm *Controller::createAlgorithm(char const *name)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue