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

Unified Diff: google_apis/gcm/engine/account_mapping.cc

Issue 491443004: [GCM] Adding GCMAccountMapper to link signed in profile to accounts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressing feedback from Jian Li Created 6 years, 3 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 | « google_apis/gcm/engine/account_mapping.h ('k') | google_apis/gcm/engine/account_mapping_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: google_apis/gcm/engine/account_mapping.cc
diff --git a/google_apis/gcm/engine/account_mapping.cc b/google_apis/gcm/engine/account_mapping.cc
index 0049b2a9f59f9c766f7b7ae541da846d6658b988..e1540779b02334e2779b6153795967c5139dbfc7 100644
--- a/google_apis/gcm/engine/account_mapping.cc
+++ b/google_apis/gcm/engine/account_mapping.cc
@@ -12,39 +12,44 @@ namespace gcm {
namespace {
const char kSeparator[] = "&";
-uint32 kEmailIndex = 0;
-uint32 kMappingChangeTimestampIndex = 1;
-uint32 kMessageTypeIndex = 2;
-uint32 kMessageIdIndex = 3;
-uint32 kSizeWithNoMessage = kMessageTypeIndex + 1;
-uint32 kSizeWithMessage = kMessageIdIndex + 1;
-
-const char kMessageTypeNoneString[] = "none";
-const char kMessageTypeAddString[] = "add";
-const char kMessageTypeRemoveString[] = "remove";
-
-std::string MessageTypeToString(AccountMapping::MessageType type) {
- switch (type) {
- case AccountMapping::MSG_NONE:
- return kMessageTypeNoneString;
- case AccountMapping::MSG_ADD:
- return kMessageTypeAddString;
- case AccountMapping::MSG_REMOVE:
- return kMessageTypeRemoveString;
+const uint32 kEmailIndex = 0;
+const uint32 kStatusIndex = 1;
+const uint32 kStatusChangeTimestampIndex = 2;
+const uint32 kSizeWithNoMessage = kStatusChangeTimestampIndex + 1;
+const uint32 kMessageIdIndex = 3;
+const uint32 kSizeWithMessage = kMessageIdIndex + 1;
+
+const char kStatusNew[] = "new";
+const char kStatusAdding[] = "adding";
+const char kStatusMapped[] = "mapped";
+const char kStatusRemoving[] = "removing";
+
+std::string StatusToString(AccountMapping::MappingStatus status) {
+ switch (status) {
+ case AccountMapping::NEW:
+ return kStatusNew;
+ case AccountMapping::ADDING:
+ return kStatusAdding;
+ case AccountMapping::MAPPED:
+ return kStatusMapped;
+ case AccountMapping::REMOVING:
+ return kStatusRemoving;
default:
NOTREACHED();
}
return std::string();
}
-bool StringToMessageType(const std::string& type_str,
- AccountMapping::MessageType* type) {
- if (type_str.compare(kMessageTypeAddString) == 0)
- *type = AccountMapping::MSG_ADD;
- else if (type_str.compare(kMessageTypeRemoveString) == 0)
- *type = AccountMapping::MSG_REMOVE;
- else if (type_str.compare(kMessageTypeNoneString) == 0)
- *type = AccountMapping::MSG_NONE;
+bool StringToStatus(const std::string& status_str,
+ AccountMapping::MappingStatus* status) {
+ if (status_str.compare(kStatusAdding) == 0)
+ *status = AccountMapping::ADDING;
+ else if (status_str.compare(kStatusMapped) == 0)
+ *status = AccountMapping::MAPPED;
+ else if (status_str.compare(kStatusRemoving) == 0)
+ *status = AccountMapping::REMOVING;
+ else if (status_str.compare(kStatusNew) == 0)
+ *status = AccountMapping::NEW;
else
return false;
@@ -53,7 +58,7 @@ bool StringToMessageType(const std::string& type_str,
} // namespace
-AccountMapping::AccountMapping() {
+AccountMapping::AccountMapping() : status(NEW) {
}
AccountMapping::~AccountMapping() {
@@ -63,10 +68,10 @@ std::string AccountMapping::SerializeAsString() const {
std::string value;
value.append(email);
value.append(kSeparator);
- value.append(base::Int64ToString(status_change_timestamp.ToInternalValue()));
+ value.append(StatusToString(status));
value.append(kSeparator);
- value.append(MessageTypeToString(last_message_type));
- if (last_message_type != MSG_NONE) {
+ value.append(base::Int64ToString(status_change_timestamp.ToInternalValue()));
+ if (!last_message_id.empty()) {
value.append(kSeparator);
value.append(last_message_id);
}
@@ -83,49 +88,40 @@ bool AccountMapping::ParseFromString(const std::string& value) {
}
if (values[kEmailIndex].empty() ||
- values[kMappingChangeTimestampIndex].empty() ||
- values[kMessageTypeIndex].empty()) {
+ values[kStatusChangeTimestampIndex].empty() ||
+ values[kStatusIndex].empty()) {
return false;
}
- if (values.size() == kSizeWithMessage && values[kMessageIdIndex].empty()) {
+ if (values.size() == kSizeWithMessage && values[kMessageIdIndex].empty())
return false;
- }
- MessageType message_type;
- if (!StringToMessageType(values[kMessageTypeIndex], &message_type))
+ MappingStatus temp_status;
+ if (!StringToStatus(values[kStatusIndex], &temp_status))
return false;
- if ((message_type == MSG_NONE && values.size() == kSizeWithMessage) ||
- (message_type != MSG_NONE && values.size() != kSizeWithMessage)) {
+ if (values.size() == kSizeWithNoMessage &&
+ (temp_status == REMOVING || temp_status == ADDING)) {
return false;
}
- last_message_type = message_type;
-
int64 status_change_ts_internal = 0LL;
- if (!base::StringToInt64(values[kMappingChangeTimestampIndex],
+ if (!base::StringToInt64(values[kStatusChangeTimestampIndex],
&status_change_ts_internal)) {
return false;
}
- if (status_change_ts_internal == 0LL)
- status = ADDING;
- else if (last_message_type == MSG_REMOVE)
- status = REMOVING;
- else
- status = MAPPED;
+ status_change_timestamp =
+ base::Time::FromInternalValue(status_change_ts_internal);
+ status = temp_status;
+ email = values[kEmailIndex];
+ access_token.clear();
if (values.size() == kSizeWithMessage)
last_message_id = values[kMessageIdIndex];
else
last_message_id.clear();
- email = values[kEmailIndex];
- status_change_timestamp =
- base::Time::FromInternalValue(status_change_ts_internal);
- access_token.clear();
-
return true;
}
« no previous file with comments | « google_apis/gcm/engine/account_mapping.h ('k') | google_apis/gcm/engine/account_mapping_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698