Mercurial > hg > piper-cpp
changeset 293:ae7397deffaa
Improve error handling (i.e. add some) for failure to initialise
author | Chris Cannam <cannam@all-day-breakfast.com> |
---|---|
date | Wed, 05 Jan 2022 14:02:19 +0000 |
parents | 16842bf06026 |
children | df381a2e6fa1 |
files | vamp-server/simple-server.cpp |
diffstat | 1 files changed, 21 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/vamp-server/simple-server.cpp Wed Jan 13 15:36:24 2021 +0000 +++ b/vamp-server/simple-server.cpp Wed Jan 05 14:02:19 2022 +0000 @@ -461,16 +461,19 @@ case RRType::Load: response.loadResponse = LoaderRequests().loadPlugin(request.loadRequest); - if (response.loadResponse.plugin != nullptr) { - mapper.addPlugin(response.loadResponse.plugin); - if (debug) { - cerr << "piper-vamp-server " << pid - << ": loaded plugin, handle = " - << mapper.pluginToHandle(response.loadResponse.plugin) - << endl; - } - response.success = true; + + if (!response.loadResponse.plugin) { + throw runtime_error("unable to load plugin"); } + + mapper.addPlugin(response.loadResponse.plugin); + if (debug) { + cerr << "piper-vamp-server " << pid + << ": loaded plugin, handle = " + << mapper.pluginToHandle(response.loadResponse.plugin) + << endl; + } + response.success = true; break; case RRType::Configure: @@ -491,14 +494,16 @@ } response.configurationResponse = LoaderRequests().configurePlugin(creq); + + if (response.configurationResponse.outputs.empty()) { + throw runtime_error("plugin failed to initialise"); + } - if (!response.configurationResponse.outputs.empty()) { - mapper.markConfigured - (h, - creq.configuration.channelCount, - response.configurationResponse.framing.blockSize); - response.success = true; - } + mapper.markConfigured + (h, + creq.configuration.channelCount, + response.configurationResponse.framing.blockSize); + response.success = true; break; }