aboutsummaryrefslogtreecommitdiff
path: root/osp/impl/testing/fake_mdns_responder_adapter.h
diff options
context:
space:
mode:
Diffstat (limited to 'osp/impl/testing/fake_mdns_responder_adapter.h')
-rw-r--r--osp/impl/testing/fake_mdns_responder_adapter.h202
1 files changed, 0 insertions, 202 deletions
diff --git a/osp/impl/testing/fake_mdns_responder_adapter.h b/osp/impl/testing/fake_mdns_responder_adapter.h
deleted file mode 100644
index ecdb21cc..00000000
--- a/osp/impl/testing/fake_mdns_responder_adapter.h
+++ /dev/null
@@ -1,202 +0,0 @@
-// Copyright 2018 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.
-
-#ifndef OSP_IMPL_TESTING_FAKE_MDNS_RESPONDER_ADAPTER_H_
-#define OSP_IMPL_TESTING_FAKE_MDNS_RESPONDER_ADAPTER_H_
-
-#include <map>
-#include <set>
-#include <string>
-#include <vector>
-
-#include "osp/impl/discovery/mdns/mdns_responder_adapter.h"
-
-namespace openscreen {
-namespace osp {
-
-class FakeMdnsResponderAdapter;
-
-PtrEvent MakePtrEvent(const std::string& service_instance,
- const std::string& service_type,
- const std::string& service_protocol,
- UdpSocket* socket);
-
-SrvEvent MakeSrvEvent(const std::string& service_instance,
- const std::string& service_type,
- const std::string& service_protocol,
- const std::string& hostname,
- uint16_t port,
- UdpSocket* socket);
-
-TxtEvent MakeTxtEvent(const std::string& service_instance,
- const std::string& service_type,
- const std::string& service_protocol,
- const std::vector<std::string>& txt_lines,
- UdpSocket* socket);
-
-AEvent MakeAEvent(const std::string& hostname,
- IPAddress address,
- UdpSocket* socket);
-
-AaaaEvent MakeAaaaEvent(const std::string& hostname,
- IPAddress address,
- UdpSocket* socket);
-
-void AddEventsForNewService(FakeMdnsResponderAdapter* mdns_responder,
- const std::string& service_instance,
- const std::string& service_name,
- const std::string& service_protocol,
- const std::string& hostname,
- uint16_t port,
- const std::vector<std::string>& txt_lines,
- const IPAddress& address,
- UdpSocket* socket);
-
-class FakeMdnsResponderAdapter final : public MdnsResponderAdapter {
- public:
- struct RegisteredInterface {
- InterfaceInfo interface_info;
- IPSubnet interface_address;
- UdpSocket* socket;
- };
-
- struct RegisteredService {
- std::string service_instance;
- std::string service_name;
- std::string service_protocol;
- DomainName target_host;
- uint16_t target_port;
- std::map<std::string, std::string> txt_data;
- };
-
- class LifetimeObserver {
- public:
- virtual ~LifetimeObserver() = default;
-
- virtual void OnDestroyed() = 0;
- };
-
- ~FakeMdnsResponderAdapter() override;
-
- void SetLifetimeObserver(LifetimeObserver* observer) { observer_ = observer; }
-
- void AddPtrEvent(PtrEvent&& ptr_event);
- void AddSrvEvent(SrvEvent&& srv_event);
- void AddTxtEvent(TxtEvent&& txt_event);
- void AddAEvent(AEvent&& a_event);
- void AddAaaaEvent(AaaaEvent&& aaaa_event);
-
- const std::vector<RegisteredInterface>& registered_interfaces() {
- return registered_interfaces_;
- }
- const std::vector<RegisteredService>& registered_services() {
- return registered_services_;
- }
- bool ptr_queries_empty() const;
- bool srv_queries_empty() const;
- bool txt_queries_empty() const;
- bool a_queries_empty() const;
- bool aaaa_queries_empty() const;
- bool running() const { return running_; }
-
- // UdpSocket::Client overrides.
- void OnRead(UdpSocket* socket, ErrorOr<UdpPacket> packet) override;
- void OnSendError(UdpSocket* socket, Error error) override;
- void OnError(UdpSocket* socket, Error error) override;
- void OnBound(UdpSocket* socket) override;
-
- // MdnsResponderAdapter overrides.
- Error Init() override;
- void Close() override;
-
- Error SetHostLabel(const std::string& host_label) override;
-
- // TODO(btolsch): Reject/OSP_CHECK events that don't match any registered
- // interface?
- Error RegisterInterface(const InterfaceInfo& interface_info,
- const IPSubnet& interface_address,
- UdpSocket* socket) override;
- Error DeregisterInterface(UdpSocket* socket) override;
-
- Clock::duration RunTasks() override;
-
- std::vector<PtrEvent> TakePtrResponses() override;
- std::vector<SrvEvent> TakeSrvResponses() override;
- std::vector<TxtEvent> TakeTxtResponses() override;
- std::vector<AEvent> TakeAResponses() override;
- std::vector<AaaaEvent> TakeAaaaResponses() override;
-
- MdnsResponderErrorCode StartPtrQuery(UdpSocket* socket,
- const DomainName& service_type) override;
- MdnsResponderErrorCode StartSrvQuery(
- UdpSocket* socket,
- const DomainName& service_instance) override;
- MdnsResponderErrorCode StartTxtQuery(
- UdpSocket* socket,
- const DomainName& service_instance) override;
- MdnsResponderErrorCode StartAQuery(UdpSocket* socket,
- const DomainName& domain_name) override;
- MdnsResponderErrorCode StartAaaaQuery(UdpSocket* socket,
- const DomainName& domain_name) override;
-
- MdnsResponderErrorCode StopPtrQuery(UdpSocket* socket,
- const DomainName& service_type) override;
- MdnsResponderErrorCode StopSrvQuery(
- UdpSocket* socket,
- const DomainName& service_instance) override;
- MdnsResponderErrorCode StopTxtQuery(
- UdpSocket* socket,
- const DomainName& service_instance) override;
- MdnsResponderErrorCode StopAQuery(UdpSocket* socket,
- const DomainName& domain_name) override;
- MdnsResponderErrorCode StopAaaaQuery(UdpSocket* socket,
- const DomainName& domain_name) override;
-
- MdnsResponderErrorCode RegisterService(
- const std::string& service_instance,
- const std::string& service_name,
- const std::string& service_protocol,
- const DomainName& target_host,
- uint16_t target_port,
- const std::map<std::string, std::string>& txt_data) override;
- MdnsResponderErrorCode DeregisterService(
- const std::string& service_instance,
- const std::string& service_name,
- const std::string& service_protocol) override;
- MdnsResponderErrorCode UpdateTxtData(
- const std::string& service_instance,
- const std::string& service_name,
- const std::string& service_protocol,
- const std::map<std::string, std::string>& txt_data) override;
-
- private:
- struct InterfaceQueries {
- std::set<DomainName, DomainNameComparator> a_queries;
- std::set<DomainName, DomainNameComparator> aaaa_queries;
- std::set<DomainName, DomainNameComparator> ptr_queries;
- std::set<DomainName, DomainNameComparator> srv_queries;
- std::set<DomainName, DomainNameComparator> txt_queries;
- };
-
- bool running_ = false;
- LifetimeObserver* observer_ = nullptr;
-
- std::map<UdpSocket*, InterfaceQueries> queries_;
- // NOTE: One of many simplifications here is that there is no cache. This
- // means that calling StartQuery, StopQuery, StartQuery will only return an
- // event the first time, unless the test also adds the event a second time.
- std::vector<PtrEvent> ptr_events_;
- std::vector<SrvEvent> srv_events_;
- std::vector<TxtEvent> txt_events_;
- std::vector<AEvent> a_events_;
- std::vector<AaaaEvent> aaaa_events_;
-
- std::vector<RegisteredInterface> registered_interfaces_;
- std::vector<RegisteredService> registered_services_;
-};
-
-} // namespace osp
-} // namespace openscreen
-
-#endif // OSP_IMPL_TESTING_FAKE_MDNS_RESPONDER_ADAPTER_H_