Index: webrtc/base/macsocketserver.cc |
diff --git a/webrtc/base/macsocketserver.cc b/webrtc/base/macsocketserver.cc |
index 96b2091dd37b38dfd30745ecb7d9c67c768d0867..b763e813b037d94909d8263d01049b4dcd5e0008 100644 |
--- a/webrtc/base/macsocketserver.cc |
+++ b/webrtc/base/macsocketserver.cc |
@@ -212,175 +212,4 @@ void MacCFSocketServer::OnWakeUpCallback() { |
ASSERT(run_loop_ == CFRunLoopGetCurrent()); |
CFRunLoopStop(run_loop_); |
} |
- |
-/////////////////////////////////////////////////////////////////////////////// |
-// MacCarbonSocketServer |
-/////////////////////////////////////////////////////////////////////////////// |
-#ifndef CARBON_DEPRECATED |
- |
-const UInt32 kEventClassSocketServer = 'MCSS'; |
-const UInt32 kEventWakeUp = 'WAKE'; |
-const EventTypeSpec kEventWakeUpSpec[] = { |
- { kEventClassSocketServer, kEventWakeUp } |
-}; |
- |
-std::string DecodeEvent(EventRef event) { |
- std::string str; |
- DecodeFourChar(::GetEventClass(event), &str); |
- str.push_back(':'); |
- DecodeFourChar(::GetEventKind(event), &str); |
- return str; |
-} |
- |
-MacCarbonSocketServer::MacCarbonSocketServer() |
- : event_queue_(GetCurrentEventQueue()), wake_up_(NULL) { |
- VERIFY(noErr == CreateEvent(NULL, kEventClassSocketServer, kEventWakeUp, 0, |
- kEventAttributeUserEvent, &wake_up_)); |
-} |
- |
-MacCarbonSocketServer::~MacCarbonSocketServer() { |
- if (wake_up_) { |
- ReleaseEvent(wake_up_); |
- } |
-} |
- |
-bool MacCarbonSocketServer::Wait(int cms, bool process_io) { |
- ASSERT(GetCurrentEventQueue() == event_queue_); |
- |
- // Listen to all events if we're processing I/O. |
- // Only listen for our wakeup event if we're not. |
- UInt32 num_types = 0; |
- const EventTypeSpec* events = NULL; |
- if (!process_io) { |
- num_types = GetEventTypeCount(kEventWakeUpSpec); |
- events = kEventWakeUpSpec; |
- } |
- |
- EventTargetRef target = GetEventDispatcherTarget(); |
- EventTimeout timeout = |
- (kForever == cms) ? kEventDurationForever : cms / 1000.0; |
- EventTimeout end_time = GetCurrentEventTime() + timeout; |
- |
- bool done = false; |
- while (!done) { |
- EventRef event; |
- OSStatus result = ReceiveNextEvent(num_types, events, timeout, true, |
- &event); |
- if (noErr == result) { |
- if (wake_up_ != event) { |
- LOG_F(LS_VERBOSE) << "Dispatching event: " << DecodeEvent(event); |
- result = SendEventToEventTarget(event, target); |
- if ((noErr != result) && (eventNotHandledErr != result)) { |
- LOG_E(LS_ERROR, OS, result) << "SendEventToEventTarget"; |
- } |
- } else { |
- done = true; |
- } |
- ReleaseEvent(event); |
- } else if (eventLoopTimedOutErr == result) { |
- ASSERT(cms != kForever); |
- done = true; |
- } else if (eventLoopQuitErr == result) { |
- // Ignore this... we get spurious quits for a variety of reasons. |
- LOG_E(LS_VERBOSE, OS, result) << "ReceiveNextEvent"; |
- } else { |
- // Some strange error occurred. Log it. |
- LOG_E(LS_WARNING, OS, result) << "ReceiveNextEvent"; |
- return false; |
- } |
- if (kForever != cms) { |
- timeout = end_time - GetCurrentEventTime(); |
- } |
- } |
- return true; |
-} |
- |
-void MacCarbonSocketServer::WakeUp() { |
- if (!IsEventInQueue(event_queue_, wake_up_)) { |
- RetainEvent(wake_up_); |
- OSStatus result = PostEventToQueue(event_queue_, wake_up_, |
- kEventPriorityStandard); |
- if (noErr != result) { |
- LOG_E(LS_ERROR, OS, result) << "PostEventToQueue"; |
- } |
- } |
-} |
- |
-/////////////////////////////////////////////////////////////////////////////// |
-// MacCarbonAppSocketServer |
-/////////////////////////////////////////////////////////////////////////////// |
- |
-MacCarbonAppSocketServer::MacCarbonAppSocketServer() |
- : event_queue_(GetCurrentEventQueue()) { |
- // Install event handler |
- VERIFY(noErr == InstallApplicationEventHandler( |
- NewEventHandlerUPP(WakeUpEventHandler), 1, kEventWakeUpSpec, this, |
- &event_handler_)); |
- |
- // Install a timer and set it idle to begin with. |
- VERIFY(noErr == InstallEventLoopTimer(GetMainEventLoop(), |
- kEventDurationForever, |
- kEventDurationForever, |
- NewEventLoopTimerUPP(TimerHandler), |
- this, |
- &timer_)); |
-} |
- |
-MacCarbonAppSocketServer::~MacCarbonAppSocketServer() { |
- RemoveEventLoopTimer(timer_); |
- RemoveEventHandler(event_handler_); |
-} |
- |
-OSStatus MacCarbonAppSocketServer::WakeUpEventHandler( |
- EventHandlerCallRef next, EventRef event, void *data) { |
- QuitApplicationEventLoop(); |
- return noErr; |
-} |
- |
-void MacCarbonAppSocketServer::TimerHandler( |
- EventLoopTimerRef timer, void *data) { |
- QuitApplicationEventLoop(); |
-} |
- |
-bool MacCarbonAppSocketServer::Wait(int cms, bool process_io) { |
- if (!process_io && cms == 0) { |
- // No op. |
- return true; |
- } |
- if (kForever != cms) { |
- // Start a timer. |
- OSStatus error = |
- SetEventLoopTimerNextFireTime(timer_, cms / 1000.0); |
- if (error != noErr) { |
- LOG(LS_ERROR) << "Failed setting next fire time."; |
- } |
- } |
- if (!process_io) { |
- // No way to listen to common modes and not get socket events, unless |
- // we disable each one's callbacks. |
- EnableSocketCallbacks(false); |
- } |
- RunApplicationEventLoop(); |
- if (!process_io) { |
- // Reenable them. Hopefully this won't cause spurious callbacks or |
- // missing ones while they were disabled. |
- EnableSocketCallbacks(true); |
- } |
- return true; |
-} |
- |
-void MacCarbonAppSocketServer::WakeUp() { |
- // TODO: No-op if there's already a WakeUp in flight. |
- EventRef wake_up; |
- VERIFY(noErr == CreateEvent(NULL, kEventClassSocketServer, kEventWakeUp, 0, |
- kEventAttributeUserEvent, &wake_up)); |
- OSStatus result = PostEventToQueue(event_queue_, wake_up, |
- kEventPriorityStandard); |
- if (noErr != result) { |
- LOG_E(LS_ERROR, OS, result) << "PostEventToQueue"; |
- } |
- ReleaseEvent(wake_up); |
-} |
- |
-#endif |
} // namespace rtc |