| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying   file Copyright.txt or https://cmake.org/licensing for details.  */#ifndef cmCTestUpdateHandler_h#define cmCTestUpdateHandler_h#include "cmConfigure.h" // IWYU pragma: keep#include "cmCTestGenericHandler.h"#include <string>#include <utility>#include <vector>/** \class cmCTestUpdateHandler * \brief A class that handles ctest -S invocations * */class cmCTestUpdateHandler : public cmCTestGenericHandler{public:  typedef cmCTestGenericHandler Superclass;  /*   * The main entry point for this class   */  int ProcessHandler() override;  cmCTestUpdateHandler();  enum  {    e_UNKNOWN = 0,    e_CVS,    e_SVN,    e_BZR,    e_GIT,    e_HG,    e_P4,    e_LAST  };  /**   * Initialize handler   */  void Initialize() override;private:  // Some structures needed for update  struct StringPair : public std::pair<std::string, std::string>  {  };  struct UpdateFiles : public std::vector<StringPair>  {  };  // Determine the type of version control  int DetermineType(const char* cmd, const char* type);  // The VCS command to update the working tree.  std::string UpdateCommand;  int UpdateType;  int DetectVCS(const char* dir);  bool SelectVCS();};#endif
 |