Roc Toolkit internal modules
Roc Toolkit: real-time audio streaming
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 
15 #include "roc_address/interface.h"
16 #include "roc_address/protocol.h"
17 #include "roc_core/iarena.h"
18 #include "roc_core/shared_ptr.h"
19 #include "roc_core/singleton.h"
22 #include "roc_netio/network_loop.h"
23 
24 namespace roc {
25 namespace ctl {
26 
27 //! Control interface map.
29 public:
30  //! Get instance.
33  }
34 
35  //! Create control endpoint for given interface and protocol.
37  address::Protocol proto,
38  ControlTaskQueue& task_queue,
39  netio::NetworkLoop& network_loop,
40  core::IArena& arena);
41 
42 private:
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
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.
static ControlInterfaceMap & instance()
Get instance.
Network event loop thread.
Definition: network_loop.h:52
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.