1/*
2 *  Copyright 2012 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_BASE_NULLSOCKETSERVER_H_
12#define WEBRTC_BASE_NULLSOCKETSERVER_H_
13
14#include "webrtc/base/event.h"
15#include "webrtc/base/physicalsocketserver.h"
16
17namespace rtc {
18
19// NullSocketServer
20
21class NullSocketServer : public rtc::SocketServer {
22 public:
23  NullSocketServer() : event_(false, false) {}
24
25  virtual bool Wait(int cms, bool process_io) {
26    event_.Wait(cms);
27    return true;
28  }
29
30  virtual void WakeUp() {
31    event_.Set();
32  }
33
34  virtual rtc::Socket* CreateSocket(int type) {
35    ASSERT(false);
36    return NULL;
37  }
38
39  virtual rtc::Socket* CreateSocket(int family, int type) {
40    ASSERT(false);
41    return NULL;
42  }
43
44  virtual rtc::AsyncSocket* CreateAsyncSocket(int type) {
45    ASSERT(false);
46    return NULL;
47  }
48
49  virtual rtc::AsyncSocket* CreateAsyncSocket(int family, int type) {
50    ASSERT(false);
51    return NULL;
52  }
53
54
55 private:
56  rtc::Event event_;
57};
58
59}  // namespace rtc
60
61#endif  // WEBRTC_BASE_NULLSOCKETSERVER_H_
62