Configuration::ServerList* Configuration::get_serverlist() { Configuration::ServerList* list = new Configuration::ServerList; Gnome::Conf::SListHandle_ValueString aet_list = m_conf_client->get_string_list("/apps/aeskulap/preferences/server_aet"); Gnome::Conf::SListHandle_ValueInt port_list = m_conf_client->get_int_list("/apps/aeskulap/preferences/server_port"); Gnome::Conf::SListHandle_ValueString hostname_list = m_conf_client->get_string_list("/apps/aeskulap/preferences/server_hostname"); Gnome::Conf::SListHandle_ValueString description_list = m_conf_client->get_string_list("/apps/aeskulap/preferences/server_description"); Gnome::Conf::SListHandle_ValueString group_list = m_conf_client->get_string_list("/apps/aeskulap/preferences/server_group"); Gnome::Conf::SListHandle_ValueBool lossy_list = m_conf_client->get_bool_list("/apps/aeskulap/preferences/server_lossy"); Gnome::Conf::SListHandle_ValueBool relational_list = m_conf_client->get_bool_list("/apps/aeskulap/preferences/server_relational"); Gnome::Conf::SListHandle_ValueString::iterator a = aet_list.begin(); Gnome::Conf::SListHandle_ValueInt::iterator p = port_list.begin(); Gnome::Conf::SListHandle_ValueString::iterator h = hostname_list.begin(); Gnome::Conf::SListHandle_ValueString::iterator d = description_list.begin(); Gnome::Conf::SListHandle_ValueString::iterator g = group_list.begin(); Gnome::Conf::SListHandle_ValueBool::iterator l = lossy_list.begin(); Gnome::Conf::SListHandle_ValueBool::iterator r = relational_list.begin(); for(; h != hostname_list.end() && a != aet_list.end() && p != port_list.end(); a++, p++, h++) { std::string servername; if(d != description_list.end()) { servername = *d; d++; } else { char buffer[50]; snprintf(buffer, sizeof(buffer), "Server%li", list->size()+1); servername = buffer; } ServerData& s = (*list)[servername]; s.m_aet = *a; s.m_port = *p; s.m_hostname = *h; s.m_name = servername; s.m_lossy = false; s.m_relational = false; if(l != lossy_list.end()) { s.m_lossy = *l; l++; } if(g != group_list.end()) { s.m_group = *g; g++; } if(r != relational_list.end()) { s.m_relational = *r; r++; } } return list; }