This source file includes following definitions.
- Parse
- id_
- IsForeign
- ToString
#include "chrome/browser/extensions/api/sessions/session_id.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
namespace extensions {
const char kIdSeparator = '.';
scoped_ptr<SessionId> SessionId::Parse(const std::string& session_id) {
std::string session_tag;
std::size_t separator = session_id.find(kIdSeparator);
if (separator != std::string::npos) {
session_tag = session_id.substr(0, separator);
}
int id;
if (!base::StringToInt(
session_tag.empty() ? session_id : session_id.substr(separator + 1),
&id)) {
return scoped_ptr<SessionId>();
}
return make_scoped_ptr(new SessionId(session_tag, id));
}
SessionId::SessionId(const std::string& session_tag, int id)
: session_tag_(session_tag), id_(id) {
}
bool SessionId::IsForeign() const {
return !session_tag_.empty();
}
std::string SessionId::ToString() const {
return IsForeign() ?
(session_tag_ + kIdSeparator + base::StringPrintf("%d", id_))
: base::StringPrintf("%d", id_);
}
}