RTCIceTransport.cpp (1932B)
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim: set ts=2 et sw=2 tw=80: */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this file, 5 * You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #include "RTCIceTransport.h" 8 9 #include "mozilla/dom/Event.h" 10 #include "mozilla/dom/EventBinding.h" 11 #include "mozilla/dom/RTCIceTransportBinding.h" 12 13 namespace mozilla::dom { 14 15 NS_IMPL_CYCLE_COLLECTION_INHERITED(RTCIceTransport, DOMEventTargetHelper) 16 17 NS_IMPL_ADDREF_INHERITED(RTCIceTransport, DOMEventTargetHelper) 18 NS_IMPL_RELEASE_INHERITED(RTCIceTransport, DOMEventTargetHelper) 19 20 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(RTCIceTransport) 21 NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY 22 NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) 23 24 RTCIceTransport::RTCIceTransport(nsPIDOMWindowInner* aWindow) 25 : DOMEventTargetHelper(aWindow), 26 mState(RTCIceTransportState::New), 27 mGatheringState(RTCIceGathererState::New) {} 28 29 JSObject* RTCIceTransport::WrapObject(JSContext* aCx, 30 JS::Handle<JSObject*> aGivenProto) { 31 return RTCIceTransport_Binding::Wrap(aCx, this, aGivenProto); 32 } 33 34 void RTCIceTransport::SetState(RTCIceTransportState aState) { mState = aState; } 35 36 void RTCIceTransport::SetGatheringState(RTCIceGathererState aState) { 37 mGatheringState = aState; 38 } 39 40 void RTCIceTransport::FireStateChangeEvent() { 41 EventInit init; 42 init.mBubbles = false; 43 init.mCancelable = false; 44 45 RefPtr<Event> event = Event::Constructor(this, u"statechange"_ns, init); 46 47 DispatchTrustedEvent(event); 48 } 49 50 void RTCIceTransport::FireGatheringStateChangeEvent() { 51 EventInit init; 52 init.mBubbles = false; 53 init.mCancelable = false; 54 55 RefPtr<Event> event = 56 Event::Constructor(this, u"gatheringstatechange"_ns, init); 57 58 DispatchTrustedEvent(event); 59 } 60 61 } // namespace mozilla::dom