Roc Toolkit internal modules
Roc Toolkit: real-time audio streaming
Loading...
Searching...
No Matches
control_interface_map.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2022 Roc Streaming authors
3 *
4 * This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 */
8
9//! @file roc_ctl/control_interface_map.h
10//! @brief Control interface map.
11
12#ifndef ROC_CTL_CONTROL_INTERFACE_MAP_H_
13#define ROC_CTL_CONTROL_INTERFACE_MAP_H_
14
17#include "roc_core/iarena.h"
18#include "roc_core/shared_ptr.h"
19#include "roc_core/singleton.h"
23
24namespace roc {
25namespace ctl {
26
27//! Control interface map.
29public:
30 //! Get instance.
34
35 //! Create control endpoint for given interface and protocol.
38 ControlTaskQueue& task_queue,
39 netio::NetworkLoop& network_loop,
40 core::IArena& arena);
41
42private:
44
46};
47
48} // namespace ctl
49} // namespace roc
50
51#endif // ROC_CTL_CONTROL_INTERFACE_MAP_H_
Base class for control endpoints.
Memory arena interface.
Definition iarena.h:23
Base class for non-copyable objects.
Definition noncopyable.h:23
Shared ownership intrusive pointer.
Definition shared_ptr.h:32
static T & instance()
Get singleton instance.
Definition singleton.h:29
static ControlInterfaceMap & instance()
Get instance.
core::SharedPtr< BasicControlEndpoint > new_endpoint(address::Interface iface, address::Protocol proto, ControlTaskQueue &task_queue, netio::NetworkLoop &network_loop, core::IArena &arena)
Create control endpoint for given interface and protocol.
Network event loop thread.
Control task queue.
Memory arena interface.
Interface ID.
Interface
Interface ID.
Definition interface.h:19
Protocol
Protocol ID.
Definition protocol.h:19
Root namespace.
Network event loop thread.
Protocol ID.
Shared ownership intrusive pointer.
Singleton.