print_backend.cc 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. // Copyright (c) 2012 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 "printing/backend/print_backend.h"
  5. #include <string>
  6. #include <utility>
  7. #include "base/memory/scoped_refptr.h"
  8. #include "build/build_config.h"
  9. namespace {
  10. // PrintBackend override for testing.
  11. printing::PrintBackend* g_print_backend_for_test = nullptr;
  12. } // namespace
  13. namespace printing {
  14. PrinterBasicInfo::PrinterBasicInfo() = default;
  15. PrinterBasicInfo::PrinterBasicInfo(const std::string& printer_name,
  16. const std::string& display_name,
  17. const std::string& printer_description,
  18. int printer_status,
  19. bool is_default,
  20. const PrinterBasicInfoOptions& options)
  21. : printer_name(printer_name),
  22. display_name(display_name),
  23. printer_description(printer_description),
  24. printer_status(printer_status),
  25. is_default(is_default),
  26. options(options) {}
  27. PrinterBasicInfo::PrinterBasicInfo(const PrinterBasicInfo& other) = default;
  28. PrinterBasicInfo::~PrinterBasicInfo() = default;
  29. bool PrinterBasicInfo::operator==(const PrinterBasicInfo& other) const {
  30. return printer_name == other.printer_name &&
  31. display_name == other.display_name &&
  32. printer_description == other.printer_description &&
  33. printer_status == other.printer_status &&
  34. is_default == other.is_default && options == other.options;
  35. }
  36. #if BUILDFLAG(IS_CHROMEOS)
  37. AdvancedCapabilityValue::AdvancedCapabilityValue() = default;
  38. AdvancedCapabilityValue::AdvancedCapabilityValue(
  39. const std::string& name,
  40. const std::string& display_name)
  41. : name(name), display_name(display_name) {}
  42. AdvancedCapabilityValue::AdvancedCapabilityValue(
  43. const AdvancedCapabilityValue& other) = default;
  44. AdvancedCapabilityValue::~AdvancedCapabilityValue() = default;
  45. bool AdvancedCapabilityValue::operator==(
  46. const AdvancedCapabilityValue& other) const {
  47. return name == other.name && display_name == other.display_name;
  48. }
  49. AdvancedCapability::AdvancedCapability() = default;
  50. AdvancedCapability::AdvancedCapability(const std::string& name,
  51. AdvancedCapability::Type type)
  52. : name(name), type(type) {}
  53. AdvancedCapability::AdvancedCapability(
  54. const std::string& name,
  55. const std::string& display_name,
  56. AdvancedCapability::Type type,
  57. const std::string& default_value,
  58. const std::vector<AdvancedCapabilityValue>& values)
  59. : name(name),
  60. display_name(display_name),
  61. type(type),
  62. default_value(default_value),
  63. values(values) {}
  64. AdvancedCapability::AdvancedCapability(const AdvancedCapability& other) =
  65. default;
  66. AdvancedCapability::~AdvancedCapability() = default;
  67. bool AdvancedCapability::operator==(const AdvancedCapability& other) const {
  68. return name == other.name && display_name == other.display_name &&
  69. type == other.type && default_value == other.default_value &&
  70. values == other.values;
  71. }
  72. #endif // BUILDFLAG(IS_CHROMEOS)
  73. #if BUILDFLAG(IS_WIN)
  74. PageOutputQualityAttribute::PageOutputQualityAttribute() = default;
  75. PageOutputQualityAttribute::PageOutputQualityAttribute(
  76. const std::string& display_name,
  77. const std::string& name)
  78. : display_name(display_name), name(name) {}
  79. PageOutputQualityAttribute::~PageOutputQualityAttribute() = default;
  80. bool PageOutputQualityAttribute::operator==(
  81. const PageOutputQualityAttribute& other) const {
  82. return display_name == other.display_name && name == other.name;
  83. }
  84. bool PageOutputQualityAttribute::operator<(
  85. const ::printing::PageOutputQualityAttribute& other) const {
  86. return std::tie(name, display_name) <
  87. std::tie(other.name, other.display_name);
  88. }
  89. PageOutputQuality::PageOutputQuality() = default;
  90. PageOutputQuality::PageOutputQuality(
  91. PageOutputQualityAttributes qualities,
  92. absl::optional<std::string> default_quality)
  93. : qualities(std::move(qualities)),
  94. default_quality(std::move(default_quality)) {}
  95. PageOutputQuality::PageOutputQuality(const PageOutputQuality& other) = default;
  96. PageOutputQuality::~PageOutputQuality() = default;
  97. #endif // BUILDFLAG(IS_WIN)
  98. bool PrinterSemanticCapsAndDefaults::Paper::operator==(
  99. const PrinterSemanticCapsAndDefaults::Paper& other) const {
  100. return display_name == other.display_name && vendor_id == other.vendor_id &&
  101. size_um == other.size_um;
  102. }
  103. PrinterSemanticCapsAndDefaults::PrinterSemanticCapsAndDefaults() = default;
  104. PrinterSemanticCapsAndDefaults::PrinterSemanticCapsAndDefaults(
  105. const PrinterSemanticCapsAndDefaults& other) = default;
  106. PrinterSemanticCapsAndDefaults::~PrinterSemanticCapsAndDefaults() = default;
  107. PrinterCapsAndDefaults::PrinterCapsAndDefaults() = default;
  108. PrinterCapsAndDefaults::PrinterCapsAndDefaults(
  109. const PrinterCapsAndDefaults& other) = default;
  110. PrinterCapsAndDefaults::~PrinterCapsAndDefaults() = default;
  111. PrintBackend::PrintBackend() = default;
  112. PrintBackend::~PrintBackend() = default;
  113. // static
  114. scoped_refptr<PrintBackend> PrintBackend::CreateInstance(
  115. const std::string& locale) {
  116. return g_print_backend_for_test
  117. ? g_print_backend_for_test
  118. : PrintBackend::CreateInstanceImpl(
  119. /*print_backend_settings=*/nullptr, locale);
  120. }
  121. // static
  122. void PrintBackend::SetPrintBackendForTesting(PrintBackend* backend) {
  123. g_print_backend_for_test = backend;
  124. }
  125. } // namespace printing