| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium OS Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef UPDATE_ENGINE_UPDATE_CHECK_ACTION_H__ | 5 #ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_UPDATE_CHECK_ACTION_H__ |
| 6 #define UPDATE_ENGINE_UPDATE_CHECK_ACTION_H__ | 6 #define CHROMEOS_PLATFORM_UPDATE_ENGINE_UPDATE_CHECK_ACTION_H__ |
| 7 | 7 |
| 8 #include <sys/types.h> | 8 #include <sys/types.h> |
| 9 #include <sys/stat.h> | 9 #include <sys/stat.h> |
| 10 #include <fcntl.h> | 10 #include <fcntl.h> |
| 11 | 11 |
| 12 #include <string> | 12 #include <string> |
| 13 | 13 |
| 14 #include <curl/curl.h> | 14 #include <curl/curl.h> |
| 15 | 15 |
| 16 #include "base/scoped_ptr.h" | 16 #include "base/scoped_ptr.h" |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 bool prompt; | 86 bool prompt; |
| 87 }; | 87 }; |
| 88 COMPILE_ASSERT(sizeof(off_t) == 8, off_t_not_64bit); | 88 COMPILE_ASSERT(sizeof(off_t) == 8, off_t_not_64bit); |
| 89 | 89 |
| 90 class UpdateCheckAction; | 90 class UpdateCheckAction; |
| 91 class NoneType; | 91 class NoneType; |
| 92 | 92 |
| 93 template<> | 93 template<> |
| 94 class ActionTraits<UpdateCheckAction> { | 94 class ActionTraits<UpdateCheckAction> { |
| 95 public: | 95 public: |
| 96 // Does not take an object for input | 96 // Takes parameters on the input pipe |
| 97 typedef NoneType InputObjectType; | 97 typedef UpdateCheckParams InputObjectType; |
| 98 // On success, puts the output path on output | 98 // On success, puts the output path on output |
| 99 typedef UpdateCheckResponse OutputObjectType; | 99 typedef UpdateCheckResponse OutputObjectType; |
| 100 }; | 100 }; |
| 101 | 101 |
| 102 class UpdateCheckAction : public Action<UpdateCheckAction>, | 102 class UpdateCheckAction : public Action<UpdateCheckAction>, |
| 103 public HttpFetcherDelegate { | 103 public HttpFetcherDelegate { |
| 104 public: | 104 public: |
| 105 // The ctor takes in all the parameters that will be used for | 105 // The ctor takes in all the parameters that will be used for |
| 106 // making the request to Omaha. For some of them we have constants | 106 // making the request to Omaha. For some of them we have constants |
| 107 // that should be used. | 107 // that should be used. |
| 108 // Takes ownership of the passed in HttpFetcher. Useful for testing. | 108 // Takes ownership of the passed in HttpFetcher. Useful for testing. |
| 109 // A good calling pattern is: | 109 // A good calling pattern is: |
| 110 // UpdateCheckAction(..., new WhateverHttpFetcher); | 110 // UpdateCheckAction(..., new WhateverHttpFetcher); |
| 111 UpdateCheckAction(const UpdateCheckParams& params, | 111 UpdateCheckAction(HttpFetcher* http_fetcher); |
| 112 HttpFetcher* http_fetcher); | |
| 113 virtual ~UpdateCheckAction(); | 112 virtual ~UpdateCheckAction(); |
| 114 typedef ActionTraits<UpdateCheckAction>::InputObjectType InputObjectType; | 113 typedef ActionTraits<UpdateCheckAction>::InputObjectType InputObjectType; |
| 115 typedef ActionTraits<UpdateCheckAction>::OutputObjectType OutputObjectType; | 114 typedef ActionTraits<UpdateCheckAction>::OutputObjectType OutputObjectType; |
| 116 void PerformAction(); | 115 void PerformAction(); |
| 117 void TerminateProcessing(); | 116 void TerminateProcessing(); |
| 118 | 117 |
| 119 // Debugging/logging | 118 // Debugging/logging |
| 120 std::string Type() const { return "UpdateCheckAction"; } | 119 static std::string StaticType() { return "UpdateCheckAction"; } |
| 120 std::string Type() const { return StaticType(); } |
| 121 | 121 |
| 122 // Delegate methods (see http_fetcher.h) | 122 // Delegate methods (see http_fetcher.h) |
| 123 virtual void ReceivedBytes(HttpFetcher *fetcher, | 123 virtual void ReceivedBytes(HttpFetcher *fetcher, |
| 124 const char* bytes, int length); | 124 const char* bytes, int length); |
| 125 virtual void TransferComplete(HttpFetcher *fetcher, bool successful); | 125 virtual void TransferComplete(HttpFetcher *fetcher, bool successful); |
| 126 | 126 |
| 127 private: | 127 private: |
| 128 // These are data that are passed in the request to the Omaha server | 128 // These are data that are passed in the request to the Omaha server |
| 129 UpdateCheckParams params_; | 129 UpdateCheckParams params_; |
| 130 | 130 |
| 131 // pointer to the HttpFetcher that does the http work | 131 // pointer to the HttpFetcher that does the http work |
| 132 scoped_ptr<HttpFetcher> http_fetcher_; | 132 scoped_ptr<HttpFetcher> http_fetcher_; |
| 133 | 133 |
| 134 // Stores the response from the omaha server | 134 // Stores the response from the omaha server |
| 135 std::vector<char> response_buffer_; | 135 std::vector<char> response_buffer_; |
| 136 | 136 |
| 137 DISALLOW_COPY_AND_ASSIGN(UpdateCheckAction); | 137 DISALLOW_COPY_AND_ASSIGN(UpdateCheckAction); |
| 138 }; | 138 }; |
| 139 | 139 |
| 140 } // namespace chromeos_update_engine | 140 } // namespace chromeos_update_engine |
| 141 | 141 |
| 142 #endif // UPDATE_ENGINE_UPDATE_CHECK_ACTION_H__ | 142 #endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_UPDATE_CHECK_ACTION_H__ |
| OLD | NEW |