This source file includes following definitions.
- SerializeAsString
- ParseFromString
#include "google_apis/gcm/engine/registration_info.h"
#include "base/strings/string_util.h"
namespace gcm {
RegistrationInfo::RegistrationInfo() {
}
RegistrationInfo::~RegistrationInfo() {
}
std::string RegistrationInfo::SerializeAsString() const {
if (sender_ids.empty() || registration_id.empty())
return std::string();
std::string value;
for (std::vector<std::string>::const_iterator iter = sender_ids.begin();
iter != sender_ids.end(); ++iter) {
DCHECK(!iter->empty() &&
iter->find(',') == std::string::npos &&
iter->find('=') == std::string::npos);
if (!value.empty())
value += ",";
value += *iter;
}
DCHECK(registration_id.find('=') == std::string::npos);
value += '=';
value += registration_id;
return value;
}
bool RegistrationInfo::ParseFromString(const std::string& value) {
if (value.empty())
return true;
size_t pos = value.find('=');
if (pos == std::string::npos)
return false;
std::string senders = value.substr(0, pos);
registration_id = value.substr(pos + 1);
Tokenize(senders, ",", &sender_ids);
if (sender_ids.empty() || registration_id.empty()) {
sender_ids.clear();
registration_id.clear();
return false;
}
return true;
}
}