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

Side by Side Diff: Source/modules/mediastream/RTCDataChannel.cpp

Issue 1171553002: Initial implementation of onbufferedamountlow (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Remove reference to file that no longer exists Created 5 years, 4 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 } 69 }
70 70
71 RTCDataChannel::RTCDataChannel(ExecutionContext* context, RTCPeerConnection* con nection, PassOwnPtr<WebRTCDataChannelHandler> handler) 71 RTCDataChannel::RTCDataChannel(ExecutionContext* context, RTCPeerConnection* con nection, PassOwnPtr<WebRTCDataChannelHandler> handler)
72 : m_executionContext(context) 72 : m_executionContext(context)
73 , m_handler(handler) 73 , m_handler(handler)
74 , m_stopped(false) 74 , m_stopped(false)
75 , m_readyState(ReadyStateConnecting) 75 , m_readyState(ReadyStateConnecting)
76 , m_binaryType(BinaryTypeArrayBuffer) 76 , m_binaryType(BinaryTypeArrayBuffer)
77 , m_scheduledEventTimer(this, &RTCDataChannel::scheduledEventTimerFired) 77 , m_scheduledEventTimer(this, &RTCDataChannel::scheduledEventTimerFired)
78 , m_connection(connection) 78 , m_connection(connection)
79 , m_bufferedAmountLowThreshold(0U)
79 { 80 {
80 m_handler->setClient(this); 81 m_handler->setClient(this);
81 } 82 }
82 83
83 RTCDataChannel::~RTCDataChannel() 84 RTCDataChannel::~RTCDataChannel()
84 { 85 {
85 // If the peer connection and the data channel die in the same 86 // If the peer connection and the data channel die in the same
86 // GC cycle stop has not been called and we need to notify the 87 // GC cycle stop has not been called and we need to notify the
87 // client that the channel is gone. 88 // client that the channel is gone.
88 if (!m_stopped) 89 if (!m_stopped)
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 150
150 ASSERT_NOT_REACHED(); 151 ASSERT_NOT_REACHED();
151 return String(); 152 return String();
152 } 153 }
153 154
154 unsigned RTCDataChannel::bufferedAmount() const 155 unsigned RTCDataChannel::bufferedAmount() const
155 { 156 {
156 return m_handler->bufferedAmount(); 157 return m_handler->bufferedAmount();
157 } 158 }
158 159
160 unsigned RTCDataChannel::bufferedAmountLowThreshold() const
161 {
162 return m_bufferedAmountLowThreshold;
163 }
164
165 void RTCDataChannel::setBufferedAmountLowThreshold(unsigned threshold)
166 {
167 m_bufferedAmountLowThreshold = threshold;
168 }
169
159 String RTCDataChannel::binaryType() const 170 String RTCDataChannel::binaryType() const
160 { 171 {
161 switch (m_binaryType) { 172 switch (m_binaryType) {
162 case BinaryTypeBlob: 173 case BinaryTypeBlob:
163 return "blob"; 174 return "blob";
164 case BinaryTypeArrayBuffer: 175 case BinaryTypeArrayBuffer:
165 return "arraybuffer"; 176 return "arraybuffer";
166 } 177 }
167 ASSERT_NOT_REACHED(); 178 ASSERT_NOT_REACHED();
168 return String(); 179 return String();
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 scheduleDispatchEvent(Event::create(EventTypeNames::open)); 254 scheduleDispatchEvent(Event::create(EventTypeNames::open));
244 break; 255 break;
245 case ReadyStateClosed: 256 case ReadyStateClosed:
246 scheduleDispatchEvent(Event::create(EventTypeNames::close)); 257 scheduleDispatchEvent(Event::create(EventTypeNames::close));
247 break; 258 break;
248 default: 259 default:
249 break; 260 break;
250 } 261 }
251 } 262 }
252 263
264 void RTCDataChannel::didDecreaseBufferedAmount(unsigned previousAmount)
265 {
266 if (previousAmount > m_bufferedAmountLowThreshold
267 && bufferedAmount() <= m_bufferedAmountLowThreshold) {
268 scheduleDispatchEvent(Event::create(EventTypeNames::bufferedamountlow));
269 }
270 }
271
253 void RTCDataChannel::didReceiveStringData(const WebString& text) 272 void RTCDataChannel::didReceiveStringData(const WebString& text)
254 { 273 {
255 if (m_stopped) 274 if (m_stopped)
256 return; 275 return;
257 276
258 scheduleDispatchEvent(MessageEvent::create(text)); 277 scheduleDispatchEvent(MessageEvent::create(text));
259 } 278 }
260 279
261 void RTCDataChannel::didReceiveRawData(const char* data, size_t dataLength) 280 void RTCDataChannel::didReceiveRawData(const char* data, size_t dataLength)
262 { 281 {
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 353
335 DEFINE_TRACE(RTCDataChannel) 354 DEFINE_TRACE(RTCDataChannel)
336 { 355 {
337 visitor->trace(m_executionContext); 356 visitor->trace(m_executionContext);
338 visitor->trace(m_scheduledEvents); 357 visitor->trace(m_scheduledEvents);
339 visitor->template registerWeakMembers<RTCDataChannel, &RTCDataChannel::clear WeakMembers>(this); 358 visitor->template registerWeakMembers<RTCDataChannel, &RTCDataChannel::clear WeakMembers>(this);
340 RefCountedGarbageCollectedEventTargetWithInlineData<RTCDataChannel>::trace(v isitor); 359 RefCountedGarbageCollectedEventTargetWithInlineData<RTCDataChannel>::trace(v isitor);
341 } 360 }
342 361
343 } // namespace blink 362 } // namespace blink
OLDNEW
« no previous file with comments | « Source/modules/mediastream/RTCDataChannel.h ('k') | Source/modules/mediastream/RTCDataChannel.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698