/* * Copyright 2007 The WebRTC Project Authors. All rights reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ // A libjingle compatible SocketServer for OSX/iOS/Cocoa. #ifndef WEBRTC_BASE_MACCOCOASOCKETSERVER_H_ #define WEBRTC_BASE_MACCOCOASOCKETSERVER_H_ #include "webrtc/base/macsocketserver.h" #ifdef __OBJC__ @class NSTimer, MacCocoaSocketServerHelperRtc; #else class NSTimer; class MacCocoaSocketServerHelperRtc; #endif namespace rtc { // A socketserver implementation that wraps the main cocoa // application loop accessed through [NSApp run]. class MacCocoaSocketServer : public MacBaseSocketServer { public: explicit MacCocoaSocketServer(); virtual ~MacCocoaSocketServer(); virtual bool Wait(int cms, bool process_io); virtual void WakeUp(); private: MacCocoaSocketServerHelperRtc* helper_; NSTimer* timer_; // Weak. // The count of how many times we're inside the NSApplication main loop. int run_count_; DISALLOW_EVIL_CONSTRUCTORS(MacCocoaSocketServer); }; } // namespace rtc #endif // WEBRTC_BASE_MACCOCOASOCKETSERVER_H_