protocol_parser.cc 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. // Copyright 2014 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/update_client/protocol_parser.h"
  5. #include <string>
  6. #include "base/strings/stringprintf.h"
  7. namespace update_client {
  8. const char ProtocolParser::Result::kCohort[] = "cohort";
  9. const char ProtocolParser::Result::kCohortHint[] = "cohorthint";
  10. const char ProtocolParser::Result::kCohortName[] = "cohortname";
  11. ProtocolParser::ProtocolParser() = default;
  12. ProtocolParser::~ProtocolParser() = default;
  13. ProtocolParser::Results::Results() = default;
  14. ProtocolParser::Results::Results(const Results& other) = default;
  15. ProtocolParser::Results::~Results() = default;
  16. ProtocolParser::Result::Result() = default;
  17. ProtocolParser::Result::Result(const Result& other) = default;
  18. ProtocolParser::Result::~Result() = default;
  19. ProtocolParser::Result::Manifest::Manifest() = default;
  20. ProtocolParser::Result::Manifest::Manifest(const Manifest& other) = default;
  21. ProtocolParser::Result::Manifest::~Manifest() = default;
  22. ProtocolParser::Result::Manifest::Package::Package() = default;
  23. ProtocolParser::Result::Manifest::Package::Package(const Package& other) =
  24. default;
  25. ProtocolParser::Result::Manifest::Package::~Package() = default;
  26. ProtocolParser::Result::Data::Data() = default;
  27. ProtocolParser::Result::Data::Data(const Data& other) = default;
  28. ProtocolParser::Result::Data& ProtocolParser::Result::Data::operator=(
  29. const Data&) = default;
  30. ProtocolParser::Result::Data::Data(const std::string& status,
  31. const std::string& name,
  32. const std::string& install_data_index,
  33. const std::string& text)
  34. : status(status),
  35. name(name),
  36. install_data_index(install_data_index),
  37. text(text) {}
  38. ProtocolParser::Result::Data::~Data() = default;
  39. void ProtocolParser::ParseError(const char* details, ...) {
  40. va_list args;
  41. va_start(args, details);
  42. if (!errors_.empty()) {
  43. errors_ += "\r\n";
  44. }
  45. base::StringAppendV(&errors_, details, args);
  46. va_end(args);
  47. }
  48. bool ProtocolParser::Parse(const std::string& response) {
  49. results_.daystart_elapsed_seconds = kNoDaystart;
  50. results_.daystart_elapsed_days = kNoDaystart;
  51. results_.list.clear();
  52. errors_.clear();
  53. return DoParse(response, &results_);
  54. }
  55. } // namespace update_client