Skip to content

Commit

Permalink
re #7403 adding list methods to config service
Browse files Browse the repository at this point in the history
  • Loading branch information
NickDraper committed Jul 17, 2013
1 parent abe4fc3 commit 80148f6
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 1 deletion.
4 changes: 4 additions & 0 deletions Code/Mantid/Framework/Kernel/inc/MantidKernel/ConfigService.h
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,10 @@ namespace Mantid

/// Load facility information from instrumentDir/Facilities.xml file
void updateFacilities(const std::string& facilityName = "");
/// Get the list of facilities
const std::vector<FacilityInfo*> getFacilities()const;
/// Get the list of facility names
const std::vector<std::string> getFacilityNames()const;
/// Get the default facility
const FacilityInfo& getFacility()const;
/// Get a facility
Expand Down
29 changes: 29 additions & 0 deletions Code/Mantid/Framework/Kernel/src/ConfigService.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1566,6 +1566,35 @@ const InstrumentInfo & ConfigServiceImpl::getInstrument(const std::string& instr
throw Exception::NotFoundError("Instrument", instrumentName);
}

/** Gets a vector of the facility Information objects
* @return A vector of FacilityInfo objects
*/
const std::vector<FacilityInfo*> ConfigServiceImpl::getFacilities() const
{
return m_facilities;
}

/** Gets a vector of the facility names
* @return A vector of the facility Names
*/
const std::vector<std::string> ConfigServiceImpl::getFacilityNames()const
{
auto names = std::vector<std::string>(m_facilities.size());
auto itFacilities = m_facilities.begin();
auto itNames = names.begin();
for (; itFacilities != m_facilities.end(); ++itFacilities,++itNames)
{
*itNames = (**itFacilities).name();
}
return names;
}

/** Get the default facility
* @return the facility information object
*/
const FacilityInfo& ConfigServiceImpl::getFacility() const
{

/** Get the default facility
* @return the facility information object
*/
Expand Down
2 changes: 1 addition & 1 deletion Code/Mantid/Framework/Kernel/src/MultiFileNameParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ namespace Kernel
m_validInstNames()
{
ConfigServiceImpl & config = ConfigService::Instance();

FacilityInfo facility = config.getFacility();
std::string supportedFacilities = config.getString("supported.facilities");

std::vector<std::string> allFacilityNames;
Expand Down
17 changes: 17 additions & 0 deletions Code/Mantid/Framework/Kernel/test/ConfigServiceTest.h
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,23 @@ class ConfigServiceTest : public CxxTest::TestSuite
// // Non existent facility
// TS_ASSERT_THROWS(ConfigService::Instance().setFacility(""), Mantid::Kernel::Exception::NotFoundError);

}

void testFacilityList()
{
std::vector<FacilityInfo*> facilities = ConfigService::Instance().getFacilities();
std::vector<std::string> names = ConfigService::Instance().getFacilityNames();

TS_ASSERT_LESS_THAN(0,names.size());
TS_ASSERT_EQUALS(facilities.size(),names.size());
auto itFacilities = m_facilities.begin();
auto itNames = names.begin();
for (; itFacilities != m_facilities.end(); ++itFacilities,++itNames)
{
TS_ASSERT_EQUALS(*itNames, (**itFacilities).name());
}


}

void testInstrumentSearch()
Expand Down

0 comments on commit 80148f6

Please sign in to comment.