| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /*============================================================================
- CMake - Cross Platform Makefile Generator
- Copyright 2000-2013 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.
- ============================================================================*/
- #ifndef cmCTestP4_h
- #define cmCTestP4_h
- #include "cmCTestGlobalVC.h"
- #include <vector>
- #include <map>
- /** \class cmCTestP4
- * \brief Interaction with the Perforce command-line tool
- *
- */
- class cmCTestP4: public cmCTestGlobalVC
- {
- public:
- /** Construct with a CTest instance and update log stream. */
- cmCTestP4(cmCTest* ctest, std::ostream& log);
- virtual ~cmCTestP4();
- private:
- std::vector<std::string> ChangeLists;
- struct User
- {
- std::string UserName;
- std::string Name;
- std::string EMail;
- std::string AccessTime;
- User(): UserName(), Name(), EMail(), AccessTime() {}
- };
- std::map<std::string, User> Users;
- std::vector<std::string> P4Options;
- User GetUserData(const std::string& username);
- void SetP4Options(std::vector<char const*> &options);
- std::string GetWorkingRevision();
- virtual void NoteOldRevision();
- virtual void NoteNewRevision();
- virtual bool UpdateImpl();
- bool UpdateCustom(const std::string& custom);
- void LoadRevisions();
- void LoadModifications();
- // Parsing helper classes.
- class IdentifyParser;
- class ChangesParser;
- class UserParser;
- class DescribeParser;
- class DiffParser;
- friend class IdentifyParser;
- friend class ChangesParser;
- friend class UserParser;
- friend class DescribeParser;
- friend class DiffParser;
- };
- #endif
|