/* * Return the state for a plugin. */ void OlaServerServiceImpl::GetPluginState( RpcController* controller, const ola::proto::PluginStateRequest* request, ola::proto::PluginStateReply* response, ola::rpc::RpcService::CompletionCallback* done) { ClosureRunner runner(done); ola_plugin_id plugin_id = (ola_plugin_id) request->plugin_id(); AbstractPlugin *plugin = m_plugin_manager->GetPlugin(plugin_id); if (plugin) { response->set_name(plugin->Name()); response->set_enabled(plugin->IsEnabled()); response->set_active(m_plugin_manager->IsActive(plugin_id)); response->set_preferences_source(plugin->PreferenceSource()); vector<AbstractPlugin*> conflict_list; m_plugin_manager->GetConflictList(plugin_id, &conflict_list); vector<AbstractPlugin*>::const_iterator iter = conflict_list.begin(); for (; iter != conflict_list.end(); ++iter) { PluginInfo *plugin_info = response->add_conflicts_with(); AddPlugin(*iter, plugin_info); } } else { controller->SetFailed("Plugin not loaded"); } }