Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(354)

Unified Diff: webrtc/base/macsocketserver.cc

Issue 2369013002: Delete macsocketserver.h and related files. (Closed)
Patch Set: Drop macsocketserver_unittest.cc. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/base/macsocketserver.cc
diff --git a/webrtc/base/macsocketserver.cc b/webrtc/base/macsocketserver.cc
deleted file mode 100644
index b763e813b037d94909d8263d01049b4dcd5e0008..0000000000000000000000000000000000000000
--- a/webrtc/base/macsocketserver.cc
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * 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.
- */
-
-
-#include "webrtc/base/macsocketserver.h"
-
-#include "webrtc/base/common.h"
-#include "webrtc/base/logging.h"
-#include "webrtc/base/macasyncsocket.h"
-#include "webrtc/base/macutils.h"
-#include "webrtc/base/thread.h"
-
-namespace rtc {
-
-///////////////////////////////////////////////////////////////////////////////
-// MacBaseSocketServer
-///////////////////////////////////////////////////////////////////////////////
-
-MacBaseSocketServer::MacBaseSocketServer() {
-}
-
-MacBaseSocketServer::~MacBaseSocketServer() {
-}
-
-Socket* MacBaseSocketServer::CreateSocket(int type) {
- return NULL;
-}
-
-Socket* MacBaseSocketServer::CreateSocket(int family, int type) {
- return NULL;
-}
-
-AsyncSocket* MacBaseSocketServer::CreateAsyncSocket(int type) {
- return CreateAsyncSocket(AF_INET, type);
-}
-
-AsyncSocket* MacBaseSocketServer::CreateAsyncSocket(int family, int type) {
- if (SOCK_STREAM != type)
- return NULL;
-
- MacAsyncSocket* socket = new MacAsyncSocket(this, family);
- if (!socket->valid()) {
- delete socket;
- return NULL;
- }
- return socket;
-}
-
-void MacBaseSocketServer::RegisterSocket(MacAsyncSocket* s) {
- sockets_.insert(s);
-}
-
-void MacBaseSocketServer::UnregisterSocket(MacAsyncSocket* s) {
- VERIFY(1 == sockets_.erase(s)); // found 1
-}
-
-bool MacBaseSocketServer::SetPosixSignalHandler(int signum,
- void (*handler)(int)) {
- Dispatcher* dispatcher = signal_dispatcher();
- if (!PhysicalSocketServer::SetPosixSignalHandler(signum, handler)) {
- return false;
- }
-
- // Only register the FD once, when the first custom handler is installed.
- if (!dispatcher && (dispatcher = signal_dispatcher())) {
- CFFileDescriptorContext ctx = { 0 };
- ctx.info = this;
-
- CFFileDescriptorRef desc = CFFileDescriptorCreate(
- kCFAllocatorDefault,
- dispatcher->GetDescriptor(),
- false,
- &MacBaseSocketServer::FileDescriptorCallback,
- &ctx);
- if (!desc) {
- return false;
- }
-
- CFFileDescriptorEnableCallBacks(desc, kCFFileDescriptorReadCallBack);
- CFRunLoopSourceRef ref =
- CFFileDescriptorCreateRunLoopSource(kCFAllocatorDefault, desc, 0);
-
- if (!ref) {
- CFRelease(desc);
- return false;
- }
-
- CFRunLoopAddSource(CFRunLoopGetCurrent(), ref, kCFRunLoopCommonModes);
- CFRelease(desc);
- CFRelease(ref);
- }
-
- return true;
-}
-
-// Used to disable socket events from waking our message queue when
-// process_io is false. Does not disable signal event handling though.
-void MacBaseSocketServer::EnableSocketCallbacks(bool enable) {
- for (std::set<MacAsyncSocket*>::iterator it = sockets().begin();
- it != sockets().end(); ++it) {
- if (enable) {
- (*it)->EnableCallbacks();
- } else {
- (*it)->DisableCallbacks();
- }
- }
-}
-
-void MacBaseSocketServer::FileDescriptorCallback(CFFileDescriptorRef fd,
- CFOptionFlags flags,
- void* context) {
- MacBaseSocketServer* this_ss =
- reinterpret_cast<MacBaseSocketServer*>(context);
- ASSERT(this_ss);
- Dispatcher* signal_dispatcher = this_ss->signal_dispatcher();
- ASSERT(signal_dispatcher);
-
- signal_dispatcher->OnPreEvent(DE_READ);
- signal_dispatcher->OnEvent(DE_READ, 0);
- CFFileDescriptorEnableCallBacks(fd, kCFFileDescriptorReadCallBack);
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-// MacCFSocketServer
-///////////////////////////////////////////////////////////////////////////////
-
-void WakeUpCallback(void* info) {
- MacCFSocketServer* server = static_cast<MacCFSocketServer*>(info);
- ASSERT(NULL != server);
- server->OnWakeUpCallback();
-}
-
-MacCFSocketServer::MacCFSocketServer()
- : run_loop_(CFRunLoopGetCurrent()),
- wake_up_(NULL) {
- CFRunLoopSourceContext ctx;
- memset(&ctx, 0, sizeof(ctx));
- ctx.info = this;
- ctx.perform = &WakeUpCallback;
- wake_up_ = CFRunLoopSourceCreate(NULL, 0, &ctx);
- ASSERT(NULL != wake_up_);
- if (wake_up_) {
- CFRunLoopAddSource(run_loop_, wake_up_, kCFRunLoopCommonModes);
- }
-}
-
-MacCFSocketServer::~MacCFSocketServer() {
- if (wake_up_) {
- CFRunLoopSourceInvalidate(wake_up_);
- CFRelease(wake_up_);
- }
-}
-
-bool MacCFSocketServer::Wait(int cms, bool process_io) {
- ASSERT(CFRunLoopGetCurrent() == run_loop_);
-
- if (!process_io && cms == 0) {
- // No op.
- return true;
- }
-
- if (!process_io) {
- // No way to listen to common modes and not get socket events, unless
- // we disable each one's callbacks.
- EnableSocketCallbacks(false);
- }
-
- SInt32 result;
- if (kForever == cms) {
- do {
- // Would prefer to run in a custom mode that only listens to wake_up,
- // but we have qtkit sending work to the main thread which is effectively
- // blocked here, causing deadlock. Thus listen to the common modes.
- // TODO: If QTKit becomes thread safe, do the above.
- result = CFRunLoopRunInMode(kCFRunLoopDefaultMode, 10000000, false);
- } while (result != kCFRunLoopRunFinished && result != kCFRunLoopRunStopped);
- } else {
- // TODO: In the case of 0ms wait, this will only process one event, so we
- // may want to loop until it returns TimedOut.
- CFTimeInterval seconds = cms / 1000.0;
- result = CFRunLoopRunInMode(kCFRunLoopDefaultMode, seconds, false);
- }
-
- if (!process_io) {
- // Reenable them. Hopefully this won't cause spurious callbacks or
- // missing ones while they were disabled.
- EnableSocketCallbacks(true);
- }
-
- if (kCFRunLoopRunFinished == result) {
- return false;
- }
- return true;
-}
-
-void MacCFSocketServer::WakeUp() {
- if (wake_up_) {
- CFRunLoopSourceSignal(wake_up_);
- CFRunLoopWakeUp(run_loop_);
- }
-}
-
-void MacCFSocketServer::OnWakeUpCallback() {
- ASSERT(run_loop_ == CFRunLoopGetCurrent());
- CFRunLoopStop(run_loop_);
-}
-} // namespace rtc

Powered by Google App Engine
This is Rietveld 408576698