/* * Returns information on the active universes. */ void OlaServerServiceImpl::GetUniverseInfo( RpcController* controller, const OptionalUniverseRequest* request, UniverseInfoReply* response, ola::rpc::RpcService::CompletionCallback* done) { ClosureRunner runner(done); UniverseInfo *universe_info; if (request->has_universe()) { // return info for a single universe Universe *universe = m_universe_store->GetUniverse(request->universe()); if (!universe) return MissingUniverseError(controller); universe_info = response->add_universe(); universe_info->set_universe(universe->UniverseId()); universe_info->set_name(universe->Name()); universe_info->set_merge_mode(universe->MergeMode() == Universe::MERGE_HTP ? ola::proto::HTP: ola::proto::LTP); universe_info->set_input_port_count(universe->InputPortCount()); universe_info->set_output_port_count(universe->OutputPortCount()); universe_info->set_rdm_devices(universe->UIDCount()); } else { // return all vector<Universe*> uni_list; m_universe_store->GetList(&uni_list); vector<Universe*>::const_iterator iter; for (iter = uni_list.begin(); iter != uni_list.end(); ++iter) { universe_info = response->add_universe(); universe_info->set_universe((*iter)->UniverseId()); universe_info->set_name((*iter)->Name()); universe_info->set_merge_mode((*iter)->MergeMode() == Universe::MERGE_HTP ? ola::proto::HTP: ola::proto::LTP); universe_info->set_input_port_count((*iter)->InputPortCount()); universe_info->set_output_port_count((*iter)->OutputPortCount()); universe_info->set_rdm_devices((*iter)->UIDCount()); } } }