1 /*============================================================================
2 CMake - Cross Platform Makefile Generator
3 Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
5 Distributed under the OSI-approved BSD License (the "License");
6 see accompanying file Copyright.txt for details.
8 This software is distributed WITHOUT ANY WARRANTY; without even the
9 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10 See the License for more information.
11 ============================================================================*/
12 #ifndef cmCTestSubmitHandler_h
13 #define cmCTestSubmitHandler_h
15 #include "cmCTestGenericHandler.h"
17 /** \class cmCTestSubmitHandler
18 * \brief Helper class for CTest
20 * Submit testing results
23 class cmCTestSubmitHandler : public cmCTestGenericHandler
26 cmTypeMacro(cmCTestSubmitHandler, cmCTestGenericHandler);
28 cmCTestSubmitHandler();
29 ~cmCTestSubmitHandler() { this->LogFile = 0; }
32 * The main entry point for this class
38 /** Specify a set of parts (by name) to submit. */
39 void SelectParts(std::set<cmCTest::Part> const& parts);
41 /** Specify a set of files to submit. */
42 void SelectFiles(cmCTest::SetOfStrings const& files);
45 void SetLogFile(std::ostream* ost) { this->LogFile = ost; }
48 * Submit file using various ways
50 bool SubmitUsingFTP(const cmStdString& localprefix,
51 const std::set<cmStdString>& files,
52 const cmStdString& remoteprefix,
53 const cmStdString& url);
54 bool SubmitUsingHTTP(const cmStdString& localprefix,
55 const std::set<cmStdString>& files,
56 const cmStdString& remoteprefix,
57 const cmStdString& url);
58 bool SubmitUsingSCP(const cmStdString& scp_command,
59 const cmStdString& localprefix,
60 const std::set<cmStdString>& files,
61 const cmStdString& remoteprefix,
62 const cmStdString& url);
64 bool SubmitUsingCP( const cmStdString& localprefix,
65 const std::set<cmStdString>& files,
66 const cmStdString& remoteprefix,
67 const cmStdString& url);
69 bool TriggerUsingHTTP(const std::set<cmStdString>& files,
70 const cmStdString& remoteprefix,
71 const cmStdString& url);
73 bool SubmitUsingXMLRPC(const cmStdString& localprefix,
74 const std::set<cmStdString>& files,
75 const cmStdString& remoteprefix,
76 const cmStdString& url);
78 typedef std::vector<char> cmCTestSubmitHandlerVectorOfChar;
80 void ParseResponse(cmCTestSubmitHandlerVectorOfChar chunk);
82 std::string GetSubmitResultsPrefix();
85 cmStdString HTTPProxy;
87 cmStdString HTTPProxyAuth;
90 std::ostream* LogFile;
91 bool SubmitPart[cmCTest::PartCount];
95 cmCTest::SetOfStrings Files;