protocol_handler.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // Copyright 2018 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. #ifndef COMPONENTS_UPDATE_CLIENT_PROTOCOL_HANDLER_H_
  5. #define COMPONENTS_UPDATE_CLIENT_PROTOCOL_HANDLER_H_
  6. #include <memory>
  7. namespace update_client {
  8. class ProtocolParser;
  9. class ProtocolSerializer;
  10. class ProtocolHandlerFactory {
  11. public:
  12. ProtocolHandlerFactory(const ProtocolHandlerFactory&) = delete;
  13. ProtocolHandlerFactory& operator=(const ProtocolHandlerFactory&) = delete;
  14. virtual ~ProtocolHandlerFactory() = default;
  15. virtual std::unique_ptr<ProtocolParser> CreateParser() const = 0;
  16. virtual std::unique_ptr<ProtocolSerializer> CreateSerializer() const = 0;
  17. protected:
  18. ProtocolHandlerFactory() = default;
  19. };
  20. class ProtocolHandlerFactoryJSON final : public ProtocolHandlerFactory {
  21. public:
  22. // Overrides for ProtocolHandlerFactory.
  23. std::unique_ptr<ProtocolParser> CreateParser() const override;
  24. std::unique_ptr<ProtocolSerializer> CreateSerializer() const override;
  25. };
  26. } // namespace update_client
  27. #endif // COMPONENTS_UPDATE_CLIENT_PROTOCOL_HANDLER_H_