[email protected] | de0fdca2 | 2014-08-19 05:26:09 | [diff] [blame] | 1 | // Copyright 2014 The Chromium Authors. All rights reserved. |
[email protected] | 2cddef4 | 2013-11-22 08:23:22 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
sorin | 7cff6e5 | 2017-05-17 16:37:23 | [diff] [blame] | 5 | #include "components/update_client/protocol_parser.h" |
[email protected] | 2cddef4 | 2013-11-22 08:23:22 | [diff] [blame] | 6 | #include "base/strings/stringprintf.h" |
[email protected] | 2cddef4 | 2013-11-22 08:23:22 | [diff] [blame] | 7 | |
sorin | 52ac088 | 2015-01-24 01:15:00 | [diff] [blame] | 8 | namespace update_client { |
[email protected] | 2cddef4 | 2013-11-22 08:23:22 | [diff] [blame] | 9 | |
sorin | 7cff6e5 | 2017-05-17 16:37:23 | [diff] [blame] | 10 | const char ProtocolParser::Result::kCohort[] = "cohort"; |
11 | const char ProtocolParser::Result::kCohortHint[] = "cohorthint"; | ||||
12 | const char ProtocolParser::Result::kCohortName[] = "cohortname"; | ||||
[email protected] | 2cddef4 | 2013-11-22 08:23:22 | [diff] [blame] | 13 | |
sorin | 7cff6e5 | 2017-05-17 16:37:23 | [diff] [blame] | 14 | ProtocolParser::ProtocolParser() = default; |
15 | ProtocolParser::~ProtocolParser() = default; | ||||
[email protected] | 2cddef4 | 2013-11-22 08:23:22 | [diff] [blame] | 16 | |
sorin | 7cff6e5 | 2017-05-17 16:37:23 | [diff] [blame] | 17 | ProtocolParser::Results::Results() = default; |
18 | ProtocolParser::Results::Results(const Results& other) = default; | ||||
19 | ProtocolParser::Results::~Results() = default; | ||||
[email protected] | 2cddef4 | 2013-11-22 08:23:22 | [diff] [blame] | 20 | |
sorin | 7cff6e5 | 2017-05-17 16:37:23 | [diff] [blame] | 21 | ProtocolParser::Result::Result() = default; |
22 | ProtocolParser::Result::Result(const Result& other) = default; | ||||
23 | ProtocolParser::Result::~Result() = default; | ||||
[email protected] | 2cddef4 | 2013-11-22 08:23:22 | [diff] [blame] | 24 | |
sorin | 7cff6e5 | 2017-05-17 16:37:23 | [diff] [blame] | 25 | ProtocolParser::Result::Manifest::Manifest() = default; |
26 | ProtocolParser::Result::Manifest::Manifest(const Manifest& other) = default; | ||||
27 | ProtocolParser::Result::Manifest::~Manifest() = default; | ||||
[email protected] | 2cddef4 | 2013-11-22 08:23:22 | [diff] [blame] | 28 | |
sorin | 7cff6e5 | 2017-05-17 16:37:23 | [diff] [blame] | 29 | ProtocolParser::Result::Manifest::Package::Package() = default; |
30 | ProtocolParser::Result::Manifest::Package::Package(const Package& other) = | ||||
vmpstr | b6449d51 | 2016-02-25 23:55:40 | [diff] [blame] | 31 | default; |
sorin | 7cff6e5 | 2017-05-17 16:37:23 | [diff] [blame] | 32 | ProtocolParser::Result::Manifest::Package::~Package() = default; |
[email protected] | 2cddef4 | 2013-11-22 08:23:22 | [diff] [blame] | 33 | |
sorin | 7cff6e5 | 2017-05-17 16:37:23 | [diff] [blame] | 34 | void ProtocolParser::ParseError(const char* details, ...) { |
[email protected] | 2cddef4 | 2013-11-22 08:23:22 | [diff] [blame] | 35 | va_list args; |
36 | va_start(args, details); | ||||
37 | |||||
38 | if (!errors_.empty()) { | ||||
39 | errors_ += "\r\n"; | ||||
40 | } | ||||
41 | |||||
42 | base::StringAppendV(&errors_, details, args); | ||||
43 | va_end(args); | ||||
44 | } | ||||
45 | |||||
Sorin Jianu | 039032b | 2018-10-12 21:48:13 | [diff] [blame] | 46 | bool ProtocolParser::Parse(const std::string& response) { |
[email protected] | 2cddef4 | 2013-11-22 08:23:22 | [diff] [blame] | 47 | results_.daystart_elapsed_seconds = kNoDaystart; |
waffles | d2d9a33 | 2016-04-09 01:59:57 | [diff] [blame] | 48 | results_.daystart_elapsed_days = kNoDaystart; |
[email protected] | 2cddef4 | 2013-11-22 08:23:22 | [diff] [blame] | 49 | results_.list.clear(); |
50 | errors_.clear(); | ||||
51 | |||||
Sorin Jianu | 039032b | 2018-10-12 21:48:13 | [diff] [blame] | 52 | return DoParse(response, &results_); |
53 | } | ||||
[email protected] | 2cddef4 | 2013-11-22 08:23:22 | [diff] [blame] | 54 | |
sorin | 52ac088 | 2015-01-24 01:15:00 | [diff] [blame] | 55 | } // namespace update_client |