| // Copyright 2026 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef COMPONENTS_OPENSCREEN_PLATFORM_SOCKET_FACTORY_H_ |
| #define COMPONENTS_OPENSCREEN_PLATFORM_SOCKET_FACTORY_H_ |
| |
| #include "base/functional/callback.h" |
| #include "services/network/public/mojom/socket_factory.mojom.h" |
| |
| namespace openscreen_platform { |
| |
| namespace SocketFactoryGetter { |
| |
| using Callback = base::RepeatingCallback<network::mojom::SocketFactory*()>; |
| |
| void Set(Callback socket_factory_getter); |
| void Clear(); |
| bool IsSet(); |
| |
| } // namespace SocketFactoryGetter |
| |
| // This and all subsequent SocketFactory calls made must obey the thread safety |
| // requirements of `socket_factory_getter`. This must be called each time a |
| // mojom::SocketFactory is needed; any returned pointer should not be stored |
| // beyond the scope in which it is received. |
| network::mojom::SocketFactory* GetSocketFactory(); |
| |
| } // namespace openscreen_platform |
| |
| #endif // COMPONENTS_OPENSCREEN_PLATFORM_SOCKET_FACTORY_H_ |