Mercurial > hg > orthanc
diff Plugins/Engine/PluginsManager.cpp @ 1581:357c4bb15701
Plugins have access to explicit error codes
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 25 Aug 2015 16:18:37 +0200 |
parents | f967bdf8534e |
children | 0a2ad4a6858f |
line wrap: on
line diff
--- a/Plugins/Engine/PluginsManager.cpp Tue Aug 25 15:59:07 2015 +0200 +++ b/Plugins/Engine/PluginsManager.cpp Tue Aug 25 16:18:37 2015 +0200 @@ -134,30 +134,29 @@ } - int32_t PluginsManager::InvokeService(OrthancPluginContext* context, - _OrthancPluginService service, - const void* params) + OrthancPluginErrorCode PluginsManager::InvokeService(OrthancPluginContext* context, + _OrthancPluginService service, + const void* params) { switch (service) { case _OrthancPluginService_LogError: LOG(ERROR) << reinterpret_cast<const char*>(params); - return 0; + return OrthancPluginErrorCode_Success; case _OrthancPluginService_LogWarning: LOG(WARNING) << reinterpret_cast<const char*>(params); - return 0; + return OrthancPluginErrorCode_Success; case _OrthancPluginService_LogInfo: LOG(INFO) << reinterpret_cast<const char*>(params); - return 0; + return OrthancPluginErrorCode_Success; default: break; } PluginsManager* that = reinterpret_cast<PluginsManager*>(context->pluginsManager); - bool error = false; for (std::list<IPluginServiceProvider*>::iterator it = that->serviceProviders_.begin(); @@ -167,26 +166,19 @@ { if ((*it)->InvokeService(service, params)) { - return 0; + return OrthancPluginErrorCode_Success; } } - catch (OrthancException&) + catch (OrthancException& e) { - // This service provider has failed, go to the next - error = true; + // This service provider has failed + LOG(ERROR) << "Exception while invoking a plugin service: " << e.What(); + return static_cast<OrthancPluginErrorCode>(e.GetErrorCode()); } } - if (error) - { - // LOG(ERROR) << "Exception when dealing with service " << service; - } - else - { - LOG(ERROR) << "Plugin invoking unknown service " << service; - } - - return -1; + LOG(ERROR) << "Plugin invoking unknown service: " << service; + return OrthancPluginErrorCode_UnknownPluginService; }