| // Copyright 2014 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #include "components/update_client/protocol_parser.h" | 
 | #include "base/strings/stringprintf.h" | 
 |  | 
 | namespace update_client { | 
 |  | 
 | const char ProtocolParser::Result::kCohort[] = "cohort"; | 
 | const char ProtocolParser::Result::kCohortHint[] = "cohorthint"; | 
 | const char ProtocolParser::Result::kCohortName[] = "cohortname"; | 
 |  | 
 | ProtocolParser::ProtocolParser() = default; | 
 | ProtocolParser::~ProtocolParser() = default; | 
 |  | 
 | ProtocolParser::Results::Results() = default; | 
 | ProtocolParser::Results::Results(const Results& other) = default; | 
 | ProtocolParser::Results::~Results() = default; | 
 |  | 
 | ProtocolParser::Result::Result() = default; | 
 | ProtocolParser::Result::Result(const Result& other) = default; | 
 | ProtocolParser::Result::~Result() = default; | 
 |  | 
 | ProtocolParser::Result::Manifest::Manifest() = default; | 
 | ProtocolParser::Result::Manifest::Manifest(const Manifest& other) = default; | 
 | ProtocolParser::Result::Manifest::~Manifest() = default; | 
 |  | 
 | ProtocolParser::Result::Manifest::Package::Package() = default; | 
 | ProtocolParser::Result::Manifest::Package::Package(const Package& other) = | 
 |     default; | 
 | ProtocolParser::Result::Manifest::Package::~Package() = default; | 
 |  | 
 | void ProtocolParser::ParseError(const char* details, ...) { | 
 |   va_list args; | 
 |   va_start(args, details); | 
 |  | 
 |   if (!errors_.empty()) { | 
 |     errors_ += "\r\n"; | 
 |   } | 
 |  | 
 |   base::StringAppendV(&errors_, details, args); | 
 |   va_end(args); | 
 | } | 
 |  | 
 | bool ProtocolParser::Parse(const std::string& response) { | 
 |   results_.daystart_elapsed_seconds = kNoDaystart; | 
 |   results_.daystart_elapsed_days = kNoDaystart; | 
 |   results_.list.clear(); | 
 |   errors_.clear(); | 
 |  | 
 |   return DoParse(response, &results_); | 
 | } | 
 |  | 
 | }  // namespace update_client |