| /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
| file Copyright.txt or https://cmake.org/licensing for details. */ |
| #include "cmVisualStudioSlnData.h" |
| |
| const cmSlnProjectEntry* cmSlnData::GetProjectByGUID( |
| const std::string& projectGUID) const |
| { |
| ProjectStorage::const_iterator it(ProjectsByGUID.find(projectGUID)); |
| if (it != ProjectsByGUID.end()) |
| return &it->second; |
| else |
| return NULL; |
| } |
| |
| const cmSlnProjectEntry* cmSlnData::GetProjectByName( |
| const std::string& projectName) const |
| { |
| ProjectStringIndex::const_iterator it(ProjectNameIndex.find(projectName)); |
| if (it != ProjectNameIndex.end()) |
| return &it->second->second; |
| else |
| return NULL; |
| } |
| |
| std::vector<cmSlnProjectEntry> cmSlnData::GetProjects() const |
| { |
| ProjectStringIndex::const_iterator it(this->ProjectNameIndex.begin()), |
| itEnd(this->ProjectNameIndex.end()); |
| std::vector<cmSlnProjectEntry> result; |
| for (; it != itEnd; ++it) |
| result.push_back(it->second->second); |
| return result; |
| } |
| |
| cmSlnProjectEntry* cmSlnData::AddProject( |
| const std::string& projectGUID, const std::string& projectName, |
| const std::string& projectRelativePath) |
| { |
| ProjectStorage::iterator it(ProjectsByGUID.find(projectGUID)); |
| if (it != ProjectsByGUID.end()) |
| return NULL; |
| it = ProjectsByGUID |
| .insert(ProjectStorage::value_type( |
| projectGUID, |
| cmSlnProjectEntry(projectGUID, projectName, projectRelativePath))) |
| .first; |
| ProjectNameIndex[projectName] = it; |
| return &it->second; |
| } |