diff options
Diffstat (limited to 'Source/CTest/cmCTestSVN.h')
-rw-r--r-- | Source/CTest/cmCTestSVN.h | 63 |
1 files changed, 34 insertions, 29 deletions
diff --git a/Source/CTest/cmCTestSVN.h b/Source/CTest/cmCTestSVN.h index c6548e3fb..46b077835 100644 --- a/Source/CTest/cmCTestSVN.h +++ b/Source/CTest/cmCTestSVN.h @@ -1,45 +1,49 @@ -/*============================================================================ - CMake - Cross Platform Makefile Generator - Copyright 2000-2009 Kitware, Inc. - - 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. -============================================================================*/ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ #ifndef cmCTestSVN_h #define cmCTestSVN_h +#include "cmConfigure.h" + #include "cmCTestGlobalVC.h" +#include <iosfwd> +#include <string> +#include <vector> + +class cmCTest; +class cmXMLWriter; + /** \class cmCTestSVN * \brief Interaction with subversion command-line tool * */ -class cmCTestSVN: public cmCTestGlobalVC +class cmCTestSVN : public cmCTestGlobalVC { public: /** Construct with a CTest instance and update log stream. */ cmCTestSVN(cmCTest* ctest, std::ostream& log); - virtual ~cmCTestSVN(); + ~cmCTestSVN() CM_OVERRIDE; private: // Implement cmCTestVC internal API. - virtual void CleanupImpl(); - virtual void NoteOldRevision(); - virtual void NoteNewRevision(); - virtual bool UpdateImpl(); + void CleanupImpl() CM_OVERRIDE; + bool NoteOldRevision() CM_OVERRIDE; + bool NoteNewRevision() CM_OVERRIDE; + bool UpdateImpl() CM_OVERRIDE; bool RunSVNCommand(std::vector<char const*> const& parameters, - OutputParser* out, OutputParser* err); + OutputParser* out, OutputParser* err); // Information about an SVN repository (root repository or external) - struct SVNInfo { + struct SVNInfo + { - SVNInfo(const char* path) : LocalPath(path) {} + SVNInfo(const char* path) + : LocalPath(path) + { + } // Remove base from the filename std::string BuildLocalPath(std::string const& path) const; @@ -58,38 +62,39 @@ private: // Old and new repository revisions. std::string OldRevision; std::string NewRevision; - }; // Extended revision structure to include info about external it refers to. struct Revision; + friend struct Revision; // Info of all the repositories (root, externals and nested ones). - std::list<SVNInfo> Repositories; + std::vector<SVNInfo> Repositories; // Pointer to the infos of the root repository. SVNInfo* RootInfo; std::string LoadInfo(SVNInfo& svninfo); - void LoadExternals(); - void LoadModifications(); - void LoadRevisions(); - void LoadRevisions(SVNInfo& svninfo); + bool LoadRepositories(); + bool LoadModifications() CM_OVERRIDE; + bool LoadRevisions() CM_OVERRIDE; + bool LoadRevisions(SVNInfo& svninfo); - void GuessBase(SVNInfo &svninfo, std::vector<Change> const& changes); + void GuessBase(SVNInfo& svninfo, std::vector<Change> const& changes); void DoRevisionSVN(Revision const& revision, std::vector<Change> const& changes); - void WriteXMLGlobal(std::ostream& xml); + void WriteXMLGlobal(cmXMLWriter& xml) CM_OVERRIDE; + class ExternalParser; // Parsing helper classes. class InfoParser; class LogParser; class StatusParser; class UpdateParser; - class ExternalParser; + friend class InfoParser; friend class LogParser; friend class StatusParser; |