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

Side by Side Diff: google_apis/gcm/engine/registration_request.cc

Issue 2427633005: Improve GCM enum switch type safety (Closed)
Patch Set: Rebase Created 4 years, 2 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 unified diff | Download patch
« no previous file with comments | « google_apis/gcm/engine/mcs_client.cc ('k') | google_apis/gcm/engine/unregistration_request.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium 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 #include "google_apis/gcm/engine/registration_request.h" 5 #include "google_apis/gcm/engine/registration_request.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 return RegistrationRequest::DEVICE_REGISTRATION_ERROR; 54 return RegistrationRequest::DEVICE_REGISTRATION_ERROR;
55 if (error.find(kAuthenticationFailed) != std::string::npos) 55 if (error.find(kAuthenticationFailed) != std::string::npos)
56 return RegistrationRequest::AUTHENTICATION_FAILED; 56 return RegistrationRequest::AUTHENTICATION_FAILED;
57 if (error.find(kInvalidSender) != std::string::npos) 57 if (error.find(kInvalidSender) != std::string::npos)
58 return RegistrationRequest::INVALID_SENDER; 58 return RegistrationRequest::INVALID_SENDER;
59 if (error.find(kInvalidParameters) != std::string::npos) 59 if (error.find(kInvalidParameters) != std::string::npos)
60 return RegistrationRequest::INVALID_PARAMETERS; 60 return RegistrationRequest::INVALID_PARAMETERS;
61 return RegistrationRequest::UNKNOWN_ERROR; 61 return RegistrationRequest::UNKNOWN_ERROR;
62 } 62 }
63 63
64 // Indicates whether a retry attempt should be made based on the status of the 64 // Determines whether to retry based on the status of the last request.
65 // last request.
66 bool ShouldRetryWithStatus(RegistrationRequest::Status status) { 65 bool ShouldRetryWithStatus(RegistrationRequest::Status status) {
67 return status == RegistrationRequest::UNKNOWN_ERROR || 66 switch (status) {
68 status == RegistrationRequest::AUTHENTICATION_FAILED || 67 case RegistrationRequest::AUTHENTICATION_FAILED:
69 status == RegistrationRequest::DEVICE_REGISTRATION_ERROR || 68 case RegistrationRequest::DEVICE_REGISTRATION_ERROR:
70 status == RegistrationRequest::HTTP_NOT_OK || 69 case RegistrationRequest::UNKNOWN_ERROR:
71 status == RegistrationRequest::URL_FETCHING_FAILED || 70 case RegistrationRequest::URL_FETCHING_FAILED:
72 status == RegistrationRequest::RESPONSE_PARSING_FAILED; 71 case RegistrationRequest::HTTP_NOT_OK:
72 case RegistrationRequest::RESPONSE_PARSING_FAILED:
73 return true;
74 case RegistrationRequest::SUCCESS:
75 case RegistrationRequest::INVALID_PARAMETERS:
76 case RegistrationRequest::INVALID_SENDER:
77 case RegistrationRequest::REACHED_MAX_RETRIES:
78 return false;
79 case RegistrationRequest::STATUS_COUNT:
80 NOTREACHED();
81 break;
82 }
83 return false;
73 } 84 }
74 85
75 } // namespace 86 } // namespace
76 87
77 RegistrationRequest::RequestInfo::RequestInfo(uint64_t android_id, 88 RegistrationRequest::RequestInfo::RequestInfo(uint64_t android_id,
78 uint64_t security_token, 89 uint64_t security_token,
79 const std::string& category, 90 const std::string& category,
80 const std::string& subtype) 91 const std::string& subtype)
81 : android_id(android_id), 92 : android_id(android_id),
82 security_token(security_token), 93 security_token(security_token),
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 // Only REACHED_MAX_RETRIES is reported because the function will skip 262 // Only REACHED_MAX_RETRIES is reported because the function will skip
252 // reporting count and time when status is not SUCCESS. 263 // reporting count and time when status is not SUCCESS.
253 DCHECK(custom_request_handler_.get()); 264 DCHECK(custom_request_handler_.get());
254 custom_request_handler_->ReportUMAs(status, 0, base::TimeDelta()); 265 custom_request_handler_->ReportUMAs(status, 0, base::TimeDelta());
255 } 266 }
256 267
257 callback_.Run(status, token); 268 callback_.Run(status, token);
258 } 269 }
259 270
260 } // namespace gcm 271 } // namespace gcm
OLDNEW
« no previous file with comments | « google_apis/gcm/engine/mcs_client.cc ('k') | google_apis/gcm/engine/unregistration_request.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698