OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. | |
3 * | |
4 * Use of this source code is governed by a BSD-style license | |
5 * that can be found in the LICENSE file in the root of the source | |
6 * tree. An additional intellectual property rights grant can be found | |
7 * in the file PATENTS. All contributing project authors may | |
8 * be found in the AUTHORS file in the root of the source tree. | |
9 */ | |
10 | |
11 #ifndef WEBRTC_VOICE_ENGINE_TEST_CHANNEL_TRANSPORT_UDP_SOCKET_MANAGER_WRAPPER_H_ | |
12 #define WEBRTC_VOICE_ENGINE_TEST_CHANNEL_TRANSPORT_UDP_SOCKET_MANAGER_WRAPPER_H_ | |
13 | |
14 #include "webrtc/system_wrappers/include/static_instance.h" | |
15 #include "webrtc/typedefs.h" | |
16 | |
17 namespace webrtc { | |
18 namespace test { | |
19 | |
20 class UdpSocketWrapper; | |
21 | |
22 class UdpSocketManager | |
23 { | |
24 public: | |
25 static UdpSocketManager* Create(const int32_t id, | |
26 uint8_t& numOfWorkThreads); | |
27 static void Return(); | |
28 | |
29 // Initializes the socket manager. Returns true if the manager wasn't | |
30 // already initialized. | |
31 virtual bool Init(int32_t id, uint8_t& numOfWorkThreads) = 0; | |
32 | |
33 // Start listening to sockets that have been registered via the | |
34 // AddSocket(..) API. | |
35 virtual bool Start() = 0; | |
36 // Stop listening to sockets. | |
37 virtual bool Stop() = 0; | |
38 | |
39 virtual uint8_t WorkThreads() const; | |
40 | |
41 // Register a socket with the socket manager. | |
42 virtual bool AddSocket(UdpSocketWrapper* s) = 0; | |
43 // Unregister a socket from the manager. | |
44 virtual bool RemoveSocket(UdpSocketWrapper* s) = 0; | |
45 | |
46 protected: | |
47 UdpSocketManager(); | |
48 virtual ~UdpSocketManager() {} | |
49 | |
50 uint8_t _numOfWorkThreads; | |
51 | |
52 // Factory method. | |
53 static UdpSocketManager* CreateInstance(); | |
54 | |
55 private: | |
56 // Friend function to allow the UDP destructor to be accessed from the | |
57 // instance template. | |
58 friend UdpSocketManager* webrtc::GetStaticInstance<UdpSocketManager>( | |
59 CountOperation count_operation); | |
60 | |
61 static UdpSocketManager* StaticInstance( | |
62 CountOperation count_operation, | |
63 const int32_t id, | |
64 uint8_t& numOfWorkThreads); | |
65 }; | |
66 | |
67 } // namespace test | |
68 } // namespace webrtc | |
69 | |
70 #endif // WEBRTC_VOICE_ENGINE_TEST_CHANNEL_TRANSPORT_UDP_SOCKET_MANAGER_WRAPPER
_H_ | |
OLD | NEW |