/*============================================================================ CMake - Cross Platform Makefile Generator Copyright 2000-2013 Kitware, Inc., Insight Software Consortium Distributed under the OSI-approved BSD License (the "License"); see accompanying file Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License for more information. ============================================================================*/ #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 cmSlnData::GetProjects() const { ProjectStringIndex::const_iterator it(this->ProjectNameIndex.begin()), itEnd(this->ProjectNameIndex.end()); std::vector 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; }