Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(206)

Unified Diff: omaha_request_action.h

Issue 2981008: Initial implementation of sending an install success even to Omaha. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/update_engine.git
Patch Set: Fix indentation. Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « integration_unittest.cc ('k') | omaha_request_action.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: omaha_request_action.h
diff --git a/omaha_request_action.h b/omaha_request_action.h
index f8dddc899bcbeb0b14a262477e7e402af68067b3..582fe5f4a1ae295e8489a6234d0d48e963ccfd24 100644
--- a/omaha_request_action.h
+++ b/omaha_request_action.h
@@ -93,28 +93,68 @@ struct OmahaResponse {
};
COMPILE_ASSERT(sizeof(off_t) == 8, off_t_not_64bit);
+// This struct encapsulates the Omaha event information. For a
+// complete list of defined event types and results, see
+// http://code.google.com/p/omaha/wiki/ServerProtocol#event
+struct OmahaEvent {
+ enum Type {
+ kTypeUnknown = 0,
+ kTypeDownloadComplete = 1,
+ kTypeInstallComplete = 2,
+ kTypeUpdateComplete = 3,
+ };
+
+ enum Result {
+ kResultError = 0,
+ kResultSuccess = 1,
+ };
+
+ OmahaEvent()
+ : type(kTypeUnknown),
+ result(kResultError),
+ error_code(0) {}
+ OmahaEvent(Type in_type, Result in_result, int in_error_code)
+ : type(in_type),
+ result(in_result),
+ error_code(in_error_code) {}
+
+ Type type;
+ Result result;
+ int error_code;
+};
+
class OmahaRequestAction;
class NoneType;
template<>
class ActionTraits<OmahaRequestAction> {
public:
- // Takes parameters on the input pipe
+ // Takes parameters on the input pipe.
typedef OmahaRequestParams InputObjectType;
- // On success, puts the output path on output
+ // On UpdateCheck success, puts the Omaha response on output. Event
+ // requests do not have an output pipe.
typedef OmahaResponse OutputObjectType;
};
class OmahaRequestAction : public Action<OmahaRequestAction>,
public HttpFetcherDelegate {
public:
- // The ctor takes in all the parameters that will be used for
- // making the request to Omaha. For some of them we have constants
- // that should be used.
+ // The ctor takes in all the parameters that will be used for making
+ // the request to Omaha. For some of them we have constants that
+ // should be used.
+ //
// Takes ownership of the passed in HttpFetcher. Useful for testing.
+ //
+ // Takes ownership of the passed in OmahaEvent. If |event| is NULL,
+ // this is an UpdateCheck request, otherwise it's an Event request.
+ // Event requests always succeed.
+ //
// A good calling pattern is:
- // OmahaRequestAction(..., new WhateverHttpFetcher);
- OmahaRequestAction(HttpFetcher* http_fetcher);
+ // OmahaRequestAction(new OmahaEvent(...), new WhateverHttpFetcher);
+ // or
+ // OmahaRequestAction(NULL, new WhateverHttpFetcher);
+ OmahaRequestAction(OmahaEvent* event,
+ HttpFetcher* http_fetcher);
virtual ~OmahaRequestAction();
typedef ActionTraits<OmahaRequestAction>::InputObjectType InputObjectType;
typedef ActionTraits<OmahaRequestAction>::OutputObjectType OutputObjectType;
@@ -130,10 +170,16 @@ class OmahaRequestAction : public Action<OmahaRequestAction>,
const char* bytes, int length);
virtual void TransferComplete(HttpFetcher *fetcher, bool successful);
+ // Returns true if this is an Event request, false if it's an UpdateCheck.
+ bool IsEvent() const { return event_.get() != NULL; }
+
private:
// These are data that are passed in the request to the Omaha server
OmahaRequestParams params_;
+ // Pointer to the OmahaEvent info. This is an UpdateCheck request if NULL.
+ scoped_ptr<OmahaEvent> event_;
+
// pointer to the HttpFetcher that does the http work
scoped_ptr<HttpFetcher> http_fetcher_;
« no previous file with comments | « integration_unittest.cc ('k') | omaha_request_action.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698