/work/obj-fuzz/dist/include/MediaEventSource.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
2 | | /* vim:set ts=2 sw=2 sts=2 et cindent: */ |
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 |
5 | | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
6 | | |
7 | | #ifndef MediaEventSource_h_ |
8 | | #define MediaEventSource_h_ |
9 | | |
10 | | #include "mozilla/AbstractThread.h" |
11 | | #include "mozilla/Atomics.h" |
12 | | #include "mozilla/Mutex.h" |
13 | | #include "mozilla/Tuple.h" |
14 | | #include "mozilla/TypeTraits.h" |
15 | | #include "mozilla/Unused.h" |
16 | | |
17 | | #include "nsISupportsImpl.h" |
18 | | #include "nsTArray.h" |
19 | | #include "nsThreadUtils.h" |
20 | | |
21 | | namespace mozilla { |
22 | | |
23 | | /** |
24 | | * A thread-safe tool to communicate "revocation" across threads. It is used to |
25 | | * disconnect a listener from the event source to prevent future notifications |
26 | | * from coming. Revoke() can be called on any thread. However, it is recommended |
27 | | * to be called on the target thread to avoid race condition. |
28 | | * |
29 | | * RevocableToken is not exposed to the client code directly. |
30 | | * Use MediaEventListener below to do the job. |
31 | | */ |
32 | | class RevocableToken { |
33 | | NS_INLINE_DECL_THREADSAFE_REFCOUNTING(RevocableToken); |
34 | | |
35 | | public: |
36 | 0 | RevocableToken() : mRevoked(false) {} |
37 | | |
38 | | void Revoke() { |
39 | | mRevoked = true; |
40 | | } |
41 | | |
42 | 0 | bool IsRevoked() const { |
43 | 0 | return mRevoked; |
44 | 0 | } |
45 | | |
46 | | protected: |
47 | | // Virtual destructor is required since we might delete a Listener object |
48 | | // through its base type pointer. |
49 | 0 | virtual ~RevocableToken() { } |
50 | | |
51 | | private: |
52 | | Atomic<bool> mRevoked; |
53 | | }; |
54 | | |
55 | | enum class ListenerPolicy : int8_t { |
56 | | // Allow at most one listener. Move will be used when possible |
57 | | // to pass the event data to save copy. |
58 | | Exclusive, |
59 | | // Allow multiple listeners. Event data will always be copied when passed |
60 | | // to the listeners. |
61 | | NonExclusive |
62 | | }; |
63 | | |
64 | | namespace detail { |
65 | | |
66 | | /** |
67 | | * Define how an event type is passed internally in MediaEventSource and to the |
68 | | * listeners. Specialized for the void type to pass a dummy bool instead. |
69 | | */ |
70 | | template <typename T> |
71 | | struct EventTypeTraits { |
72 | | typedef T ArgType; |
73 | | }; |
74 | | |
75 | | template <> |
76 | | struct EventTypeTraits<void> { |
77 | | typedef bool ArgType; |
78 | | }; |
79 | | |
80 | | /** |
81 | | * Test if a method function or lambda accepts one or more arguments. |
82 | | */ |
83 | | template <typename T> |
84 | | class TakeArgsHelper { |
85 | | template <typename C> static FalseType test(void(C::*)(), int); |
86 | | template <typename C> static FalseType test(void(C::*)() const, int); |
87 | | template <typename C> static FalseType test(void(C::*)() volatile, int); |
88 | | template <typename C> static FalseType test(void(C::*)() const volatile, int); |
89 | | template <typename F> static FalseType test(F&&, decltype(DeclVal<F>()(), 0)); |
90 | | static TrueType test(...); |
91 | | public: |
92 | | typedef decltype(test(DeclVal<T>(), 0)) Type; |
93 | | }; |
94 | | |
95 | | template <typename T> |
96 | | struct TakeArgs : public TakeArgsHelper<T>::Type {}; |
97 | | |
98 | | template <typename T> struct EventTarget; |
99 | | |
100 | | template <> |
101 | | struct EventTarget<nsIEventTarget> { |
102 | | static void |
103 | 0 | Dispatch(nsIEventTarget* aTarget, already_AddRefed<nsIRunnable> aTask) { |
104 | 0 | aTarget->Dispatch(std::move(aTask), NS_DISPATCH_NORMAL); |
105 | 0 | } |
106 | | }; |
107 | | |
108 | | template <> |
109 | | struct EventTarget<AbstractThread> { |
110 | | static void |
111 | 0 | Dispatch(AbstractThread* aTarget, already_AddRefed<nsIRunnable> aTask) { |
112 | 0 | Unused << aTarget->Dispatch(std::move(aTask)); |
113 | 0 | } |
114 | | }; |
115 | | |
116 | | /** |
117 | | * Encapsulate a raw pointer to be captured by a lambda without causing |
118 | | * static-analysis errors. |
119 | | */ |
120 | | template <typename T> |
121 | | class RawPtr { |
122 | | public: |
123 | 0 | explicit RawPtr(T* aPtr) : mPtr(aPtr) {} Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaMetadataManager>::RawPtr(mozilla::MediaMetadataManager*) Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaDecoder>::RawPtr(mozilla::MediaDecoder*) Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaDecoderOwner>::RawPtr(mozilla::MediaDecoderOwner*) Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaDecoderStateMachine>::RawPtr(mozilla::MediaDecoderStateMachine*) Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaFormatReader>::RawPtr(mozilla::MediaFormatReader*) Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::media::AudioSink>::RawPtr(mozilla::media::AudioSink*) Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::DecodedStream>::RawPtr(mozilla::DecodedStream*) Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::media::VideoSink>::RawPtr(mozilla::media::VideoSink*) |
124 | 0 | T* get() const { return mPtr; } Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaMetadataManager>::get() const Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaDecoder>::get() const Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaDecoderOwner>::get() const Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaDecoderStateMachine>::get() const Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaFormatReader>::get() const Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::media::AudioSink>::get() const Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::DecodedStream>::get() const Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::media::VideoSink>::get() const |
125 | | private: |
126 | | T* const mPtr; |
127 | | }; |
128 | | |
129 | | template <typename... As> |
130 | | class Listener : public RevocableToken |
131 | | { |
132 | | public: |
133 | | template <typename... Ts> |
134 | | void Dispatch(Ts&&... aEvents) |
135 | 0 | { |
136 | 0 | if (CanTakeArgs()) { |
137 | 0 | DispatchTask(NewRunnableMethod<typename Decay<Ts>::Type&&...>( |
138 | 0 | "detail::Listener::ApplyWithArgs", |
139 | 0 | this, |
140 | 0 | &Listener::ApplyWithArgs, |
141 | 0 | std::forward<Ts>(aEvents)...)); |
142 | 0 | } else { |
143 | 0 | DispatchTask(NewRunnableMethod( |
144 | 0 | "detail::Listener::ApplyWithNoArgs", this, &Listener::ApplyWithNoArgs)); |
145 | 0 | } |
146 | 0 | } Unexecuted instantiation: void mozilla::detail::Listener<bool>::Dispatch<bool>(bool&&) Unexecuted instantiation: void mozilla::detail::Listener<mozilla::TimedMetadata>::Dispatch<mozilla::TimedMetadata>(mozilla::TimedMetadata&&) Unexecuted instantiation: void mozilla::detail::Listener<mozilla::MediaPlaybackEvent>::Dispatch<mozilla::MediaPlaybackEvent::EventType&>(mozilla::MediaPlaybackEvent::EventType&) Unexecuted instantiation: void mozilla::detail::Listener<mozilla::MediaDecoderOwner::NextFrameStatus>::Dispatch<mozilla::MediaDecoderOwner::NextFrameStatus&>(mozilla::MediaDecoderOwner::NextFrameStatus&) Unexecuted instantiation: void mozilla::detail::Listener<RefPtr<mozilla::AudioData> >::Dispatch<RefPtr<mozilla::AudioData>&>(RefPtr<mozilla::AudioData>&) Unexecuted instantiation: void mozilla::detail::Listener<RefPtr<mozilla::VideoData> >::Dispatch<RefPtr<mozilla::VideoData>&>(RefPtr<mozilla::VideoData>&) Unexecuted instantiation: void mozilla::detail::Listener<mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>::Dispatch<mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>(mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >&&, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >&&, mozilla::MediaDecoderEventVisibility&&) Unexecuted instantiation: void mozilla::detail::Listener<mozilla::MediaPlaybackEvent>::Dispatch<mozilla::MediaPlaybackEvent&>(mozilla::MediaPlaybackEvent&) Unexecuted instantiation: void mozilla::detail::Listener<mozilla::MediaResult>::Dispatch<mozilla::MediaResult const&>(mozilla::MediaResult const&) Unexecuted instantiation: void mozilla::detail::Listener<nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility>::Dispatch<nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility&>(nsAutoPtr<mozilla::MediaInfo>&&, mozilla::MediaDecoderEventVisibility&) Unexecuted instantiation: void mozilla::detail::Listener<mozilla::DecoderDoctorEvent>::Dispatch<mozilla::DecoderDoctorEvent&>(mozilla::DecoderDoctorEvent&) Unexecuted instantiation: void mozilla::detail::Listener<nsTArray<unsigned char>, nsTString<char16_t> >::Dispatch<nsTArray<unsigned char>&, nsTString<char16_t>&>(nsTArray<unsigned char>&, nsTString<char16_t>&) Unexecuted instantiation: void mozilla::detail::Listener<long>::Dispatch<long&>(long&) Unexecuted instantiation: void mozilla::detail::Listener<bool>::Dispatch<bool&>(bool&) Unexecuted instantiation: void mozilla::detail::Listener<mozilla::TrackInfo::TrackType>::Dispatch<mozilla::TrackInfo::TrackType const&>(mozilla::TrackInfo::TrackType const&) |
147 | | |
148 | | protected: |
149 | | virtual ~Listener() |
150 | 0 | { |
151 | 0 | MOZ_ASSERT(IsRevoked(), "Must disconnect the listener."); |
152 | 0 | } Unexecuted instantiation: mozilla::detail::Listener<mozilla::TimedMetadata>::~Listener() Unexecuted instantiation: mozilla::detail::Listener<mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>::~Listener() Unexecuted instantiation: mozilla::detail::Listener<nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility>::~Listener() Unexecuted instantiation: mozilla::detail::Listener<mozilla::MediaPlaybackEvent>::~Listener() Unexecuted instantiation: mozilla::detail::Listener<mozilla::MediaResult>::~Listener() Unexecuted instantiation: mozilla::detail::Listener<mozilla::DecoderDoctorEvent>::~Listener() Unexecuted instantiation: mozilla::detail::Listener<bool>::~Listener() Unexecuted instantiation: mozilla::detail::Listener<mozilla::MediaDecoderOwner::NextFrameStatus>::~Listener() Unexecuted instantiation: mozilla::detail::Listener<nsTArray<unsigned char>, nsTString<char16_t> >::~Listener() Unexecuted instantiation: mozilla::detail::Listener<RefPtr<mozilla::AudioData> >::~Listener() Unexecuted instantiation: mozilla::detail::Listener<RefPtr<mozilla::VideoData> >::~Listener() Unexecuted instantiation: mozilla::detail::Listener<mozilla::TrackInfo::TrackType>::~Listener() Unexecuted instantiation: mozilla::detail::Listener<long>::~Listener() |
153 | | |
154 | | private: |
155 | | virtual void DispatchTask(already_AddRefed<nsIRunnable> aTask) = 0; |
156 | | |
157 | | // True if the underlying listener function takes non-zero arguments. |
158 | | virtual bool CanTakeArgs() const = 0; |
159 | | // Pass the event data to the underlying listener function. Should be called |
160 | | // only when CanTakeArgs() returns true. |
161 | | virtual void ApplyWithArgs(As&&... aEvents) = 0; |
162 | | // Invoke the underlying listener function. Should be called only when |
163 | | // CanTakeArgs() returns false. |
164 | | virtual void ApplyWithNoArgs() = 0; |
165 | | }; |
166 | | |
167 | | /** |
168 | | * Store the registered target thread and function so it knows where and to |
169 | | * whom to send the event data. |
170 | | */ |
171 | | template <typename Target, typename Function, typename... As> |
172 | | class ListenerImpl : public Listener<As...> |
173 | | { |
174 | | // Strip CV and reference from Function. |
175 | | using FunctionStorage = typename Decay<Function>::Type; |
176 | | |
177 | | public: |
178 | | template <typename F> |
179 | | ListenerImpl(Target* aTarget, F&& aFunction) |
180 | | : mTarget(aTarget) |
181 | | , mFunction(std::forward<F>(aFunction)) |
182 | 0 | { |
183 | 0 | } Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_20MediaMetadataManagerEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EEC2ISL_EEPS2_OSH_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EEC2ISL_EEPS2_OSH_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS6_EEEENS5_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS7_ISE_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSK_FvS9_SG_SH_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SO_EUlOS9_OSG_OSH_E_JS9_SG_SH_EEC2ISZ_EEPS2_OSS_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSB_FvS7_S8_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS7_OS8_E_JS7_S8_EEC2ISP_EEPS2_OSJ_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EEC2ISL_EEPS2_OSH_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EEC2ISN_EEPS2_OSI_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS5_E_JS5_EEC2ISL_EEPS2_OSG_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_12MediaDecoderEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEEC2ISJ_EEPS2_OSF_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalIS2_NS_12MediaDecoderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EEC2ISM_EEPS2_OSH_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMSB_FvRKS6_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SL_EUlOS6_OS8_E_JS6_S8_EEC2ISV_EEPS2_OSP_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEEC2ISJ_EEPS2_OSF_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EEC2ISN_EEPS2_OSI_ Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21, RefPtr<mozilla::AudioData> >::ListenerImpl<mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21&&) Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22, RefPtr<mozilla::VideoData> >::ListenerImpl<mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22&&) Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlObE_JbEEC2ISK_EEPS2_OSF_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EEC2ISP_EEPS2_OSK_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EEC2ISP_EEPS2_OSK_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEEC2ISJ_EEPS2_OSF_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalIS2_NS_17MediaFormatReaderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EEC2ISM_EEPS2_OSH_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_5media9AudioSinkEMSB_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SH_EUlOS7_E_JS7_EEC2ISQ_EEPS2_OSL_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9AudioSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEEC2ISK_EEPS2_OSG_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlOlE_JlEEC2ISK_EEPS2_OSF_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EEC2ISM_EEPS2_OSI_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEEC2ISJ_EEPS2_OSF_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EEC2ISM_EEPS2_OSI_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_5media9VideoSinkEMSB_FvOS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlSC_E_JS7_EEC2ISO_EEPS2_OSK_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9VideoSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEEC2ISK_EEPS2_OSG_ |
184 | | |
185 | | private: |
186 | | void DispatchTask(already_AddRefed<nsIRunnable> aTask) override |
187 | 0 | { |
188 | 0 | EventTarget<Target>::Dispatch(mTarget.get(), std::move(aTask)); |
189 | 0 | } Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_20MediaMetadataManagerEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS6_EEEENS5_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS7_ISE_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSK_FvS9_SG_SH_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SO_EUlOS9_OSG_OSH_E_JS9_SG_SH_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSB_FvS7_S8_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS7_OS8_E_JS7_S8_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS5_E_JS5_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_12MediaDecoderEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalIS2_NS_12MediaDecoderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMSB_FvRKS6_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SL_EUlOS6_OS8_E_JS6_S8_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21, RefPtr<mozilla::AudioData> >::DispatchTask(already_AddRefed<nsIRunnable>) Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22, RefPtr<mozilla::VideoData> >::DispatchTask(already_AddRefed<nsIRunnable>) Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlObE_JbEE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalIS2_NS_17MediaFormatReaderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_5media9AudioSinkEMSB_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SH_EUlOS7_E_JS7_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9AudioSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlOlE_JlEE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_5media9VideoSinkEMSB_FvOS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlSC_E_JS7_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9VideoSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE12DispatchTaskE16already_AddRefedI11nsIRunnableE |
190 | | |
191 | | bool CanTakeArgs() const override |
192 | 0 | { |
193 | 0 | return TakeArgs<FunctionStorage>::value; |
194 | 0 | } Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_20MediaMetadataManagerEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS6_EEEENS5_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS7_ISE_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSK_FvS9_SG_SH_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SO_EUlOS9_OSG_OSH_E_JS9_SG_SH_EE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSB_FvS7_S8_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS7_OS8_E_JS7_S8_EE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS5_E_JS5_EE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_12MediaDecoderEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalIS2_NS_12MediaDecoderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMSB_FvRKS6_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SL_EUlOS6_OS8_E_JS6_S8_EE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE11CanTakeArgsEv Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21, RefPtr<mozilla::AudioData> >::CanTakeArgs() const Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22, RefPtr<mozilla::VideoData> >::CanTakeArgs() const Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlObE_JbEE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalIS2_NS_17MediaFormatReaderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_5media9AudioSinkEMSB_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SH_EUlOS7_E_JS7_EE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9AudioSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlOlE_JlEE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_5media9VideoSinkEMSB_FvOS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlSC_E_JS7_EE11CanTakeArgsEv Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9VideoSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE11CanTakeArgsEv |
195 | | |
196 | | // |F| takes one or more arguments. |
197 | | template <typename F> |
198 | | typename EnableIf<TakeArgs<F>::value, void>::Type |
199 | | ApplyWithArgsImpl(const F& aFunc, As&&... aEvents) |
200 | 0 | { |
201 | 0 | aFunc(std::move(aEvents)...); |
202 | 0 | } Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_20MediaMetadataManagerEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE17ApplyWithArgsImplISL_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_S9_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE17ApplyWithArgsImplISL_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_S9_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS6_EEEENS5_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS7_ISE_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSK_FvS9_SG_SH_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SO_EUlOS9_OSG_OSH_E_JS9_SG_SH_EE17ApplyWithArgsImplISZ_EENSN_IXsr8TakeArgsISS_EE5valueEvE4TypeERKSS_SW_SX_SY_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSB_FvS7_S8_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS7_OS8_E_JS7_S8_EE17ApplyWithArgsImplISP_EENSE_IXsr8TakeArgsISJ_EE5valueEvE4TypeERKSJ_SN_SO_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE17ApplyWithArgsImplISL_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_S9_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE17ApplyWithArgsImplISN_EENSD_IXsr8TakeArgsISI_EE5valueEvE4TypeERKSI_SM_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS5_E_JS5_EE17ApplyWithArgsImplISL_EENSB_IXsr8TakeArgsISG_EE5valueEvE4TypeERKSG_SK_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalIS2_NS_12MediaDecoderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE17ApplyWithArgsImplISM_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_SL_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMSB_FvRKS6_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SL_EUlOS6_OS8_E_JS6_S8_EE17ApplyWithArgsImplISV_EENSK_IXsr8TakeArgsISP_EE5valueEvE4TypeERKSP_ST_SU_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE17ApplyWithArgsImplISN_EENSD_IXsr8TakeArgsISI_EE5valueEvE4TypeERKSI_SM_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlObE_JbEE17ApplyWithArgsImplISK_EENSA_IXsr8TakeArgsISF_EE5valueEvE4TypeERKSF_SJ_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE17ApplyWithArgsImplISP_EENSF_IXsr8TakeArgsISK_EE5valueEvE4TypeERKSK_SO_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE17ApplyWithArgsImplISP_EENSF_IXsr8TakeArgsISK_EE5valueEvE4TypeERKSK_SO_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalIS2_NS_17MediaFormatReaderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE17ApplyWithArgsImplISM_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_SL_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_5media9AudioSinkEMSB_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SH_EUlOS7_E_JS7_EE17ApplyWithArgsImplISQ_EENSG_IXsr8TakeArgsISL_EE5valueEvE4TypeERKSL_SP_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlOlE_JlEE17ApplyWithArgsImplISK_EENSA_IXsr8TakeArgsISF_EE5valueEvE4TypeERKSF_SJ_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_5media9VideoSinkEMSB_FvOS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlSC_E_JS7_EE17ApplyWithArgsImplISO_EENSF_IXsr8TakeArgsISK_EE5valueEvE4TypeERKSK_SC_ |
203 | | |
204 | | // |F| takes no arguments. |
205 | | template <typename F> |
206 | | typename EnableIf<!TakeArgs<F>::value, void>::Type |
207 | | ApplyWithArgsImpl(const F& aFunc, As&&... aEvents) |
208 | 0 | { |
209 | 0 | MOZ_CRASH("Call ApplyWithNoArgs instead."); |
210 | 0 | } Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_12MediaDecoderEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE17ApplyWithArgsImplISJ_EENSA_IXntsr8TakeArgsISF_EE5valueEvE4TypeERKSF_Ob Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE17ApplyWithArgsImplISJ_EENSA_IXntsr8TakeArgsISF_EE5valueEvE4TypeERKSF_Ob Unexecuted instantiation: Unified_cpp_dom_media5.cpp:_ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_24MediaDecoderStateMachine13DecodingState5EnterEvE4$_21J6RefPtrINS_9AudioDataEEEE17ApplyWithArgsImplIS5_EENS_8EnableIfIXntsr8TakeArgsIT_EE5valueEvE4TypeERKSC_OS8_ Unexecuted instantiation: Unified_cpp_dom_media5.cpp:_ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_24MediaDecoderStateMachine13DecodingState5EnterEvE4$_22J6RefPtrINS_9VideoDataEEEE17ApplyWithArgsImplIS5_EENS_8EnableIfIXntsr8TakeArgsIT_EE5valueEvE4TypeERKSC_OS8_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE17ApplyWithArgsImplISJ_EENSA_IXntsr8TakeArgsISF_EE5valueEvE4TypeERKSF_Ob Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9AudioSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE17ApplyWithArgsImplISK_EENSB_IXntsr8TakeArgsISG_EE5valueEvE4TypeERKSG_Ob Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE17ApplyWithArgsImplISM_EENSD_IXntsr8TakeArgsISI_EE5valueEvE4TypeERKSI_OS7_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE17ApplyWithArgsImplISJ_EENSA_IXntsr8TakeArgsISF_EE5valueEvE4TypeERKSF_Ob Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE17ApplyWithArgsImplISM_EENSD_IXntsr8TakeArgsISI_EE5valueEvE4TypeERKSI_OS7_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9VideoSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE17ApplyWithArgsImplISK_EENSB_IXntsr8TakeArgsISG_EE5valueEvE4TypeERKSG_Ob |
211 | | |
212 | | void ApplyWithArgs(As&&... aEvents) override |
213 | 0 | { |
214 | 0 | MOZ_RELEASE_ASSERT(TakeArgs<Function>::value); |
215 | 0 | // Don't call the listener if it is disconnected. |
216 | 0 | if (!RevocableToken::IsRevoked()) { |
217 | 0 | ApplyWithArgsImpl(mFunction, std::move(aEvents)...); |
218 | 0 | } |
219 | 0 | } Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_20MediaMetadataManagerEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE13ApplyWithArgsES9_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE13ApplyWithArgsES9_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS6_EEEENS5_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS7_ISE_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSK_FvS9_SG_SH_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SO_EUlOS9_OSG_OSH_E_JS9_SG_SH_EE13ApplyWithArgsESW_SX_SY_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSB_FvS7_S8_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS7_OS8_E_JS7_S8_EE13ApplyWithArgsESN_SO_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE13ApplyWithArgsES9_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE13ApplyWithArgsESM_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS5_E_JS5_EE13ApplyWithArgsESK_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_12MediaDecoderEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE13ApplyWithArgsEOb Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalIS2_NS_12MediaDecoderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE13ApplyWithArgsESL_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMSB_FvRKS6_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SL_EUlOS6_OS8_E_JS6_S8_EE13ApplyWithArgsEST_SU_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE13ApplyWithArgsEOb Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE13ApplyWithArgsESM_ Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21, RefPtr<mozilla::AudioData> >::ApplyWithArgs(RefPtr<mozilla::AudioData>&&) Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22, RefPtr<mozilla::VideoData> >::ApplyWithArgs(RefPtr<mozilla::VideoData>&&) Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlObE_JbEE13ApplyWithArgsESJ_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE13ApplyWithArgsESO_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE13ApplyWithArgsESO_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE13ApplyWithArgsEOb Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalIS2_NS_17MediaFormatReaderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE13ApplyWithArgsESL_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_5media9AudioSinkEMSB_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SH_EUlOS7_E_JS7_EE13ApplyWithArgsESP_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9AudioSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE13ApplyWithArgsEOb Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlOlE_JlEE13ApplyWithArgsESJ_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE13ApplyWithArgsEOS7_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE13ApplyWithArgsEOb Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE13ApplyWithArgsEOS7_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_5media9VideoSinkEMSB_FvOS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlSC_E_JS7_EE13ApplyWithArgsESC_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9VideoSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE13ApplyWithArgsEOb |
220 | | |
221 | | // |F| takes one or more arguments. |
222 | | template <typename F> |
223 | | typename EnableIf<TakeArgs<F>::value, void>::Type |
224 | | ApplyWithNoArgsImpl(const F& aFunc) |
225 | 0 | { |
226 | 0 | MOZ_CRASH("Call ApplyWithArgs instead."); |
227 | 0 | } Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_20MediaMetadataManagerEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE19ApplyWithNoArgsImplISL_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE19ApplyWithNoArgsImplISL_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS6_EEEENS5_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS7_ISE_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSK_FvS9_SG_SH_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SO_EUlOS9_OSG_OSH_E_JS9_SG_SH_EE19ApplyWithNoArgsImplISZ_EENSN_IXsr8TakeArgsISS_EE5valueEvE4TypeERKSS_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSB_FvS7_S8_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS7_OS8_E_JS7_S8_EE19ApplyWithNoArgsImplISP_EENSE_IXsr8TakeArgsISJ_EE5valueEvE4TypeERKSJ_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE19ApplyWithNoArgsImplISL_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE19ApplyWithNoArgsImplISN_EENSD_IXsr8TakeArgsISI_EE5valueEvE4TypeERKSI_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS5_E_JS5_EE19ApplyWithNoArgsImplISL_EENSB_IXsr8TakeArgsISG_EE5valueEvE4TypeERKSG_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalIS2_NS_12MediaDecoderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE19ApplyWithNoArgsImplISM_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMSB_FvRKS6_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SL_EUlOS6_OS8_E_JS6_S8_EE19ApplyWithNoArgsImplISV_EENSK_IXsr8TakeArgsISP_EE5valueEvE4TypeERKSP_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE19ApplyWithNoArgsImplISN_EENSD_IXsr8TakeArgsISI_EE5valueEvE4TypeERKSI_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlObE_JbEE19ApplyWithNoArgsImplISK_EENSA_IXsr8TakeArgsISF_EE5valueEvE4TypeERKSF_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE19ApplyWithNoArgsImplISP_EENSF_IXsr8TakeArgsISK_EE5valueEvE4TypeERKSK_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE19ApplyWithNoArgsImplISP_EENSF_IXsr8TakeArgsISK_EE5valueEvE4TypeERKSK_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalIS2_NS_17MediaFormatReaderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE19ApplyWithNoArgsImplISM_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_5media9AudioSinkEMSB_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SH_EUlOS7_E_JS7_EE19ApplyWithNoArgsImplISQ_EENSG_IXsr8TakeArgsISL_EE5valueEvE4TypeERKSL_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlOlE_JlEE19ApplyWithNoArgsImplISK_EENSA_IXsr8TakeArgsISF_EE5valueEvE4TypeERKSF_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_5media9VideoSinkEMSB_FvOS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlSC_E_JS7_EE19ApplyWithNoArgsImplISO_EENSF_IXsr8TakeArgsISK_EE5valueEvE4TypeERKSK_ |
228 | | |
229 | | // |F| takes no arguments. |
230 | | template <typename F> |
231 | | typename EnableIf<!TakeArgs<F>::value, void>::Type |
232 | | ApplyWithNoArgsImpl(const F& aFunc) |
233 | 0 | { |
234 | 0 | aFunc(); |
235 | 0 | } Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_12MediaDecoderEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE19ApplyWithNoArgsImplISJ_EENSA_IXntsr8TakeArgsISF_EE5valueEvE4TypeERKSF_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE19ApplyWithNoArgsImplISJ_EENSA_IXntsr8TakeArgsISF_EE5valueEvE4TypeERKSF_ Unexecuted instantiation: Unified_cpp_dom_media5.cpp:_ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_24MediaDecoderStateMachine13DecodingState5EnterEvE4$_21J6RefPtrINS_9AudioDataEEEE19ApplyWithNoArgsImplIS5_EENS_8EnableIfIXntsr8TakeArgsIT_EE5valueEvE4TypeERKSC_ Unexecuted instantiation: Unified_cpp_dom_media5.cpp:_ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_24MediaDecoderStateMachine13DecodingState5EnterEvE4$_22J6RefPtrINS_9VideoDataEEEE19ApplyWithNoArgsImplIS5_EENS_8EnableIfIXntsr8TakeArgsIT_EE5valueEvE4TypeERKSC_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE19ApplyWithNoArgsImplISJ_EENSA_IXntsr8TakeArgsISF_EE5valueEvE4TypeERKSF_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9AudioSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE19ApplyWithNoArgsImplISK_EENSB_IXntsr8TakeArgsISG_EE5valueEvE4TypeERKSG_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE19ApplyWithNoArgsImplISM_EENSD_IXntsr8TakeArgsISI_EE5valueEvE4TypeERKSI_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE19ApplyWithNoArgsImplISJ_EENSA_IXntsr8TakeArgsISF_EE5valueEvE4TypeERKSF_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE19ApplyWithNoArgsImplISM_EENSD_IXntsr8TakeArgsISI_EE5valueEvE4TypeERKSI_ Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9VideoSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE19ApplyWithNoArgsImplISK_EENSB_IXntsr8TakeArgsISG_EE5valueEvE4TypeERKSG_ |
236 | | |
237 | | virtual void ApplyWithNoArgs() override |
238 | 0 | { |
239 | 0 | MOZ_RELEASE_ASSERT(!TakeArgs<Function>::value); |
240 | 0 | // Don't call the listener if it is disconnected. |
241 | 0 | if (!RevocableToken::IsRevoked()) { |
242 | 0 | ApplyWithNoArgsImpl(mFunction); |
243 | 0 | } |
244 | 0 | } Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_20MediaMetadataManagerEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS6_EEEENS5_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS7_ISE_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSK_FvS9_SG_SH_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SO_EUlOS9_OSG_OSH_E_JS9_SG_SH_EE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSB_FvS7_S8_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS7_OS8_E_JS7_S8_EE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS5_E_JS5_EE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_12MediaDecoderEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalIS2_NS_12MediaDecoderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMSB_FvRKS6_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SL_EUlOS6_OS8_E_JS6_S8_EE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE15ApplyWithNoArgsEv Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21, RefPtr<mozilla::AudioData> >::ApplyWithNoArgs() Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22, RefPtr<mozilla::VideoData> >::ApplyWithNoArgs() Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlObE_JbEE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalIS2_NS_17MediaFormatReaderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_5media9AudioSinkEMSB_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SH_EUlOS7_E_JS7_EE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9AudioSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlOlE_JlEE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_5media9VideoSinkEMSB_FvOS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlSC_E_JS7_EE15ApplyWithNoArgsEv Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9VideoSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE15ApplyWithNoArgsEv |
245 | | |
246 | | const RefPtr<Target> mTarget; |
247 | | FunctionStorage mFunction; |
248 | | }; |
249 | | |
250 | | /** |
251 | | * Return true if any type is a reference type. |
252 | | */ |
253 | | template <typename Head, typename... Tails> |
254 | | struct IsAnyReference { |
255 | | static const bool value = IsReference<Head>::value || |
256 | | IsAnyReference<Tails...>::value; |
257 | | }; |
258 | | |
259 | | template <typename T> |
260 | | struct IsAnyReference<T> { |
261 | | static const bool value = IsReference<T>::value; |
262 | | }; |
263 | | |
264 | | } // namespace detail |
265 | | |
266 | | template <ListenerPolicy, typename... Ts> class MediaEventSourceImpl; |
267 | | |
268 | | /** |
269 | | * Not thread-safe since this is not meant to be shared and therefore only |
270 | | * move constructor is provided. Used to hold the result of |
271 | | * MediaEventSource<T>::Connect() and call Disconnect() to disconnect the |
272 | | * listener from an event source. |
273 | | */ |
274 | | class MediaEventListener { |
275 | | template <ListenerPolicy, typename... Ts> |
276 | | friend class MediaEventSourceImpl; |
277 | | |
278 | | public: |
279 | | MediaEventListener() {} |
280 | | |
281 | | MediaEventListener(MediaEventListener&& aOther) |
282 | 0 | : mToken(std::move(aOther.mToken)) {} |
283 | | |
284 | 0 | MediaEventListener& operator=(MediaEventListener&& aOther) { |
285 | 0 | MOZ_ASSERT(!mToken, "Must disconnect the listener."); |
286 | 0 | mToken = std::move(aOther.mToken); |
287 | 0 | return *this; |
288 | 0 | } |
289 | | |
290 | | ~MediaEventListener() { |
291 | | MOZ_ASSERT(!mToken, "Must disconnect the listener."); |
292 | | } |
293 | | |
294 | | void Disconnect() { |
295 | | mToken->Revoke(); |
296 | | mToken = nullptr; |
297 | | } |
298 | | |
299 | | void DisconnectIfExists() { |
300 | | if (mToken) { |
301 | | Disconnect(); |
302 | | } |
303 | | } |
304 | | |
305 | | private: |
306 | | // Avoid exposing RevocableToken directly to the client code so that |
307 | | // listeners can be disconnected in a controlled manner. |
308 | 0 | explicit MediaEventListener(RevocableToken* aToken) : mToken(aToken) {} |
309 | | RefPtr<RevocableToken> mToken; |
310 | | }; |
311 | | |
312 | | /** |
313 | | * A generic and thread-safe class to implement the observer pattern. |
314 | | */ |
315 | | template <ListenerPolicy Lp, typename... Es> |
316 | | class MediaEventSourceImpl { |
317 | | static_assert(!detail::IsAnyReference<Es...>::value, |
318 | | "Ref-type not supported!"); |
319 | | |
320 | | template <typename T> |
321 | | using ArgType = typename detail::EventTypeTraits<T>::ArgType; |
322 | | |
323 | | typedef detail::Listener<ArgType<Es>...> Listener; |
324 | | |
325 | | template<typename Target, typename Func> |
326 | | using ListenerImpl = detail::ListenerImpl<Target, Func, ArgType<Es>...>; |
327 | | |
328 | | template <typename Method> |
329 | | using TakeArgs = detail::TakeArgs<Method>; |
330 | | |
331 | 0 | void PruneListeners() { |
332 | 0 | int32_t last = static_cast<int32_t>(mListeners.Length()) - 1; |
333 | 0 | for (int32_t i = last; i >= 0; --i) { |
334 | 0 | if (mListeners[i]->IsRevoked()) { |
335 | 0 | mListeners.RemoveElementAt(i); |
336 | 0 | } |
337 | 0 | } |
338 | 0 | } Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::TimedMetadata>::PruneListeners() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>::PruneListeners() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility>::PruneListeners() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaPlaybackEvent>::PruneListeners() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaResult>::PruneListeners() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::DecoderDoctorEvent>::PruneListeners() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::PruneListeners() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaDecoderOwner::NextFrameStatus>::PruneListeners() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, nsTArray<unsigned char>, nsTString<char16_t> >::PruneListeners() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::AudioData> >::PruneListeners() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::VideoData> >::PruneListeners() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, bool>::PruneListeners() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::TrackInfo::TrackType>::PruneListeners() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, long>::PruneListeners() |
339 | | |
340 | | template<typename Target, typename Function> |
341 | | MediaEventListener |
342 | 0 | ConnectInternal(Target* aTarget, Function&& aFunction) { |
343 | 0 | MutexAutoLock lock(mMutex); |
344 | 0 | PruneListeners(); |
345 | 0 | MOZ_ASSERT(Lp == ListenerPolicy::NonExclusive || mListeners.IsEmpty()); |
346 | 0 | auto l = mListeners.AppendElement(); |
347 | 0 | *l = new ListenerImpl<Target, Function>( |
348 | 0 | aTarget, std::forward<Function>(aFunction)); |
349 | 0 | return MediaEventListener(*l); |
350 | 0 | } Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalINS_14AbstractThreadEZNS3_15ConnectInternalIS5_NS_20MediaMetadataManagerEMS7_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlS8_E_EESD_SH_OSI_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalINS_14AbstractThreadEZNS3_15ConnectInternalIS5_NS_12MediaDecoderEMS7_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlS8_E_EESD_SH_OSI_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS3_EEEENS2_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS4_ISB_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalINS_14AbstractThreadEZNSF_15ConnectInternalISH_NS_12MediaDecoderEMSJ_FvS6_SD_SE_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SN_EUlOS6_OSD_OSE_E_EESO_SS_OST_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalINS_14AbstractThreadEZNS6_15ConnectInternalIS8_NS_12MediaDecoderEMSA_FvS4_S5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS4_OS5_E_EESF_SJ_OSK_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalINS_14AbstractThreadEZNS3_15ConnectInternalIS5_NS_12MediaDecoderEMS7_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlS8_E_EESD_SH_OSI_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalINS_14AbstractThreadEZNS3_15ConnectInternalIS5_NS_12MediaDecoderEMS7_FvRKS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS2_E_EESE_SI_OSJ_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalINS_14AbstractThreadEZNS3_15ConnectInternalIS5_NS_12MediaDecoderEMS7_FvS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlOS2_E_EESC_SG_OSH_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadEZNS2_15ConnectInternalIS4_NS_12MediaDecoderEMS6_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_EUlvE_EESB_SF_OSG_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalINS_14AbstractThreadEZNS4_15ConnectInternalIS6_NS_12MediaDecoderEMS8_FvS3_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS3_E_EESD_SH_OSI_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalINS_14AbstractThreadEZNS6_15ConnectInternalIS8_NS_17MediaDecoderOwnerEMSA_FvRKS3_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SK_EUlOS3_OS5_E_EESL_SP_OSQ_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadEZNS2_15ConnectInternalIS4_NS_17MediaDecoderOwnerEMS6_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_EUlvE_EESB_SF_OSG_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalINS_14AbstractThreadEZNS3_15ConnectInternalIS5_NS_17MediaDecoderOwnerEMS7_FvRKS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS2_E_EESE_SI_OSJ_ Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::AudioData> >::ConnectInternal<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21&&) Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::VideoData> >::ConnectInternal<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22&&) Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalINS_14AbstractThreadEZNS2_15ConnectInternalIS4_NS_24MediaDecoderStateMachineEMS6_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_EUlObE_EESB_SF_OSG_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadEZNS5_15ConnectInternalIS7_NS_24MediaDecoderStateMachineEMS9_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS4_E_EESG_SK_OSL_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadEZNS5_15ConnectInternalIS7_NS_24MediaDecoderStateMachineEMS9_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS4_E_EESG_SK_OSL_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadEZNS2_15ConnectInternalIS4_NS_24MediaDecoderStateMachineEMS6_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_EUlvE_EESB_SF_OSG_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalINS_14AbstractThreadEZNS4_15ConnectInternalIS6_NS_17MediaFormatReaderEMS8_FvS3_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS3_E_EESD_SH_OSI_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadEZNS5_15ConnectInternalIS7_NS_5media9AudioSinkEMSA_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS4_E_EESH_SL_OSM_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadEZNS2_15ConnectInternalIS4_NS_5media9AudioSinkEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_EESC_SG_OSH_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalINS_14AbstractThreadEZNS2_15ConnectInternalIS4_NS_13DecodedStreamEMS6_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_EUlOlE_EESB_SF_OSG_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadEZNS5_15ConnectInternalIS7_NS_13DecodedStreamEMS9_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlvE_EESE_SI_OSJ_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadEZNS2_15ConnectInternalIS4_NS_13DecodedStreamEMS6_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_EUlvE_EESB_SF_OSG_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadEZNS5_15ConnectInternalIS7_NS_13DecodedStreamEMS9_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlvE_EESE_SI_OSJ_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadEZNS5_15ConnectInternalIS7_NS_5media9VideoSinkEMSA_FvOS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlSB_E_EESG_SK_OSL_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadEZNS2_15ConnectInternalIS4_NS_5media9VideoSinkEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_EESC_SG_OSH_ |
351 | | |
352 | | // |Method| takes one or more arguments. |
353 | | template <typename Target, typename This, typename Method> |
354 | | typename EnableIf<TakeArgs<Method>::value, MediaEventListener>::Type |
355 | 0 | ConnectInternal(Target* aTarget, This* aThis, Method aMethod) { |
356 | 0 | detail::RawPtr<This> thiz(aThis); |
357 | 0 | return ConnectInternal(aTarget, |
358 | 0 | [=](ArgType<Es>&&... aEvents) { |
359 | 0 | (thiz.get()->*aMethod)(std::move(aEvents)...); |
360 | 0 | }); Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalINS_14AbstractThreadENS_20MediaMetadataManagerEMS6_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_ENKUlS7_E_clES7_ Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS6_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_ENKUlS7_E_clES7_ Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS3_EEEENS2_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS4_ISB_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMSI_FvS6_SD_SE_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SM_ENKUlOS6_OSD_OSE_E_clESU_SV_SW_ Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS9_FvS4_S5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_ENKUlOS4_OS5_E_clESL_SM_ Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS6_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_ENKUlS7_E_clES7_ Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS6_FvRKS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_ENKUlOS2_E_clESK_ Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS6_FvS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_ENKUlOS2_E_clESI_ Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS7_FvS3_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_ENKUlOS3_E_clESJ_ Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalINS_14AbstractThreadENS_17MediaDecoderOwnerEMS9_FvRKS3_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SJ_ENKUlOS3_OS5_E_clESR_SS_ Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalINS_14AbstractThreadENS_17MediaDecoderOwnerEMS6_FvRKS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_ENKUlOS2_E_clESK_ Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalINS_14AbstractThreadENS_24MediaDecoderStateMachineEMS5_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ENKUlObE_clESH_ Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadENS_24MediaDecoderStateMachineEMS8_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_ENKUlOS4_E_clESM_ Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadENS_24MediaDecoderStateMachineEMS8_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_ENKUlOS4_E_clESM_ Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalINS_14AbstractThreadENS_17MediaFormatReaderEMS7_FvS3_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_ENKUlOS3_E_clESJ_ Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadENS_5media9AudioSinkEMS9_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_ENKUlOS4_E_clESN_ Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalINS_14AbstractThreadENS_13DecodedStreamEMS5_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ENKUlOlE_clESH_ Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadENS_5media9VideoSinkEMS9_FvOS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_ENKUlSA_E_clESA_ |
361 | 0 | } Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalINS_14AbstractThreadENS_20MediaMetadataManagerEMS6_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS6_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS3_EEEENS2_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS4_ISB_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMSI_FvS6_SD_SE_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SM_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS9_FvS4_S5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS6_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS6_FvRKS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS6_FvS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS7_FvS3_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalINS_14AbstractThreadENS_17MediaDecoderOwnerEMS9_FvRKS3_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SJ_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalINS_14AbstractThreadENS_17MediaDecoderOwnerEMS6_FvRKS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalINS_14AbstractThreadENS_24MediaDecoderStateMachineEMS5_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadENS_24MediaDecoderStateMachineEMS8_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadENS_24MediaDecoderStateMachineEMS8_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalINS_14AbstractThreadENS_17MediaFormatReaderEMS7_FvS3_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadENS_5media9AudioSinkEMS9_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalINS_14AbstractThreadENS_13DecodedStreamEMS5_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadENS_5media9VideoSinkEMS9_FvOS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_ |
362 | | |
363 | | // |Method| takes no arguments. Don't bother passing the event data. |
364 | | template <typename Target, typename This, typename Method> |
365 | | typename EnableIf<!TakeArgs<Method>::value, MediaEventListener>::Type |
366 | 0 | ConnectInternal(Target* aTarget, This* aThis, Method aMethod) { |
367 | 0 | detail::RawPtr<This> thiz(aThis); |
368 | 0 | return ConnectInternal(aTarget, |
369 | 0 | [=]() { |
370 | 0 | (thiz.get()->*aMethod)(); |
371 | 0 | }); Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS5_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ENKUlvE_clEv Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_17MediaDecoderOwnerEMS5_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ENKUlvE_clEv Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_24MediaDecoderStateMachineEMS5_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ENKUlvE_clEv Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_5media9AudioSinkEMS6_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_ENKUlvE_clEv Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadENS_13DecodedStreamEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_ENKUlvE_clEv Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_13DecodedStreamEMS5_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ENKUlvE_clEv Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadENS_13DecodedStreamEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_ENKUlvE_clEv Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_5media9VideoSinkEMS6_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_ENKUlvE_clEv |
372 | 0 | } Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS5_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_17MediaDecoderOwnerEMS5_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_24MediaDecoderStateMachineEMS5_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_5media9AudioSinkEMS6_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadENS_13DecodedStreamEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_13DecodedStreamEMS5_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadENS_13DecodedStreamEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_ Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_5media9VideoSinkEMS6_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_ |
373 | | |
374 | | public: |
375 | | /** |
376 | | * Register a function to receive notifications from the event source. |
377 | | * |
378 | | * @param aTarget The target thread on which the function will run. |
379 | | * @param aFunction A function to be called on the target thread. The function |
380 | | * parameter must be convertible from |EventType|. |
381 | | * @return An object used to disconnect from the event source. |
382 | | */ |
383 | | template<typename Function> |
384 | | MediaEventListener |
385 | 0 | Connect(AbstractThread* aTarget, Function&& aFunction) { |
386 | 0 | return ConnectInternal(aTarget, std::forward<Function>(aFunction)); |
387 | 0 | } Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::AudioData> >::Connect<mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21&&) Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::VideoData> >::Connect<mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22&&) |
388 | | |
389 | | template<typename Function> |
390 | | MediaEventListener |
391 | | Connect(nsIEventTarget* aTarget, Function&& aFunction) { |
392 | | return ConnectInternal(aTarget, std::forward<Function>(aFunction)); |
393 | | } |
394 | | |
395 | | /** |
396 | | * As above. |
397 | | * |
398 | | * Note we deliberately keep a weak reference to |aThis| in order not to |
399 | | * change its lifetime. This is because notifications are dispatched |
400 | | * asynchronously and removing a listener doesn't always break the reference |
401 | | * cycle for the pending event could still hold a reference to |aThis|. |
402 | | * |
403 | | * The caller must call MediaEventListener::Disconnect() to avoid dangling |
404 | | * pointers. |
405 | | */ |
406 | | template <typename This, typename Method> |
407 | | MediaEventListener |
408 | 0 | Connect(AbstractThread* aTarget, This* aThis, Method aMethod) { |
409 | 0 | return ConnectInternal(aTarget, aThis, aMethod); |
410 | 0 | } Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::TimedMetadata>::Connect<mozilla::MediaMetadataManager, void (mozilla::MediaMetadataManager::*)(mozilla::TimedMetadata&&)>(mozilla::AbstractThread*, mozilla::MediaMetadataManager*, void (mozilla::MediaMetadataManager::*)(mozilla::TimedMetadata&&)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::TimedMetadata>::Connect<mozilla::MediaDecoder, void (mozilla::MediaDecoder::*)(mozilla::TimedMetadata&&)>(mozilla::AbstractThread*, mozilla::MediaDecoder*, void (mozilla::MediaDecoder::*)(mozilla::TimedMetadata&&)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>::Connect<mozilla::MediaDecoder, void (mozilla::MediaDecoder::*)(mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility)>(mozilla::AbstractThread*, mozilla::MediaDecoder*, void (mozilla::MediaDecoder::*)(mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility>::Connect<mozilla::MediaDecoder, void (mozilla::MediaDecoder::*)(nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility)>(mozilla::AbstractThread*, mozilla::MediaDecoder*, void (mozilla::MediaDecoder::*)(nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaPlaybackEvent>::Connect<mozilla::MediaDecoder, void (mozilla::MediaDecoder::*)(mozilla::MediaPlaybackEvent&&)>(mozilla::AbstractThread*, mozilla::MediaDecoder*, void (mozilla::MediaDecoder::*)(mozilla::MediaPlaybackEvent&&)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaResult>::Connect<mozilla::MediaDecoder, void (mozilla::MediaDecoder::*)(mozilla::MediaResult const&)>(mozilla::AbstractThread*, mozilla::MediaDecoder*, void (mozilla::MediaDecoder::*)(mozilla::MediaResult const&)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::DecoderDoctorEvent>::Connect<mozilla::MediaDecoder, void (mozilla::MediaDecoder::*)(mozilla::DecoderDoctorEvent)>(mozilla::AbstractThread*, mozilla::MediaDecoder*, void (mozilla::MediaDecoder::*)(mozilla::DecoderDoctorEvent)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::Connect<mozilla::MediaDecoder, void (mozilla::MediaDecoder::*)()>(mozilla::AbstractThread*, mozilla::MediaDecoder*, void (mozilla::MediaDecoder::*)()) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaDecoderOwner::NextFrameStatus>::Connect<mozilla::MediaDecoder, void (mozilla::MediaDecoder::*)(mozilla::MediaDecoderOwner::NextFrameStatus)>(mozilla::AbstractThread*, mozilla::MediaDecoder*, void (mozilla::MediaDecoder::*)(mozilla::MediaDecoderOwner::NextFrameStatus)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, nsTArray<unsigned char>, nsTString<char16_t> >::Connect<mozilla::MediaDecoderOwner, void (mozilla::MediaDecoderOwner::*)(nsTArray<unsigned char> const&, nsTSubstring<char16_t> const&)>(mozilla::AbstractThread*, mozilla::MediaDecoderOwner*, void (mozilla::MediaDecoderOwner::*)(nsTArray<unsigned char> const&, nsTSubstring<char16_t> const&)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::Connect<mozilla::MediaDecoderOwner, void (mozilla::MediaDecoderOwner::*)()>(mozilla::AbstractThread*, mozilla::MediaDecoderOwner*, void (mozilla::MediaDecoderOwner::*)()) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaResult>::Connect<mozilla::MediaDecoderOwner, void (mozilla::MediaDecoderOwner::*)(mozilla::MediaResult const&)>(mozilla::AbstractThread*, mozilla::MediaDecoderOwner*, void (mozilla::MediaDecoderOwner::*)(mozilla::MediaResult const&)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, bool>::Connect<mozilla::MediaDecoderStateMachine, void (mozilla::MediaDecoderStateMachine::*)(bool)>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine*, void (mozilla::MediaDecoderStateMachine::*)(bool)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::AudioData> >::Connect<mozilla::MediaDecoderStateMachine, void (mozilla::MediaDecoderStateMachine::*)(RefPtr<mozilla::AudioData> const&)>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine*, void (mozilla::MediaDecoderStateMachine::*)(RefPtr<mozilla::AudioData> const&)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::VideoData> >::Connect<mozilla::MediaDecoderStateMachine, void (mozilla::MediaDecoderStateMachine::*)(RefPtr<mozilla::VideoData> const&)>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine*, void (mozilla::MediaDecoderStateMachine::*)(RefPtr<mozilla::VideoData> const&)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::Connect<mozilla::MediaDecoderStateMachine, void (mozilla::MediaDecoderStateMachine::*)()>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine*, void (mozilla::MediaDecoderStateMachine::*)()) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::TrackInfo::TrackType>::Connect<mozilla::MediaFormatReader, void (mozilla::MediaFormatReader::*)(mozilla::TrackInfo::TrackType)>(mozilla::AbstractThread*, mozilla::MediaFormatReader*, void (mozilla::MediaFormatReader::*)(mozilla::TrackInfo::TrackType)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::AudioData> >::Connect<mozilla::media::AudioSink, void (mozilla::media::AudioSink::*)(RefPtr<mozilla::AudioData> const&)>(mozilla::AbstractThread*, mozilla::media::AudioSink*, void (mozilla::media::AudioSink::*)(RefPtr<mozilla::AudioData> const&)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::Connect<mozilla::media::AudioSink, void (mozilla::media::AudioSink::*)()>(mozilla::AbstractThread*, mozilla::media::AudioSink*, void (mozilla::media::AudioSink::*)()) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, long>::Connect<mozilla::DecodedStream, void (mozilla::DecodedStream::*)(long)>(mozilla::AbstractThread*, mozilla::DecodedStream*, void (mozilla::DecodedStream::*)(long)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::AudioData> >::Connect<mozilla::DecodedStream, void (mozilla::DecodedStream::*)()>(mozilla::AbstractThread*, mozilla::DecodedStream*, void (mozilla::DecodedStream::*)()) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::Connect<mozilla::DecodedStream, void (mozilla::DecodedStream::*)()>(mozilla::AbstractThread*, mozilla::DecodedStream*, void (mozilla::DecodedStream::*)()) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::VideoData> >::Connect<mozilla::DecodedStream, void (mozilla::DecodedStream::*)()>(mozilla::AbstractThread*, mozilla::DecodedStream*, void (mozilla::DecodedStream::*)()) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::VideoData> >::Connect<mozilla::media::VideoSink, void (mozilla::media::VideoSink::*)(RefPtr<mozilla::VideoData>&&)>(mozilla::AbstractThread*, mozilla::media::VideoSink*, void (mozilla::media::VideoSink::*)(RefPtr<mozilla::VideoData>&&)) Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::Connect<mozilla::media::VideoSink, void (mozilla::media::VideoSink::*)()>(mozilla::AbstractThread*, mozilla::media::VideoSink*, void (mozilla::media::VideoSink::*)()) |
411 | | |
412 | | template <typename This, typename Method> |
413 | | MediaEventListener |
414 | | Connect(nsIEventTarget* aTarget, This* aThis, Method aMethod) { |
415 | | return ConnectInternal(aTarget, aThis, aMethod); |
416 | | } |
417 | | |
418 | | protected: |
419 | 0 | MediaEventSourceImpl() : mMutex("MediaEventSourceImpl::mMutex") {} Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::TimedMetadata>::MediaEventSourceImpl() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>::MediaEventSourceImpl() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility>::MediaEventSourceImpl() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaPlaybackEvent>::MediaEventSourceImpl() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaResult>::MediaEventSourceImpl() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::DecoderDoctorEvent>::MediaEventSourceImpl() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaDecoderOwner::NextFrameStatus>::MediaEventSourceImpl() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::AudioData> >::MediaEventSourceImpl() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::MediaEventSourceImpl() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::VideoData> >::MediaEventSourceImpl() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::TrackInfo::TrackType>::MediaEventSourceImpl() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, nsTArray<unsigned char>, nsTString<char16_t> >::MediaEventSourceImpl() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, bool>::MediaEventSourceImpl() Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, long>::MediaEventSourceImpl() |
420 | | |
421 | | template <typename... Ts> |
422 | 0 | void NotifyInternal(Ts&&... aEvents) { |
423 | 0 | MutexAutoLock lock(mMutex); |
424 | 0 | int32_t last = static_cast<int32_t>(mListeners.Length()) - 1; |
425 | 0 | for (int32_t i = last; i >= 0; --i) { |
426 | 0 | auto&& l = mListeners[i]; |
427 | 0 | // Remove disconnected listeners. |
428 | 0 | // It is not optimal but is simple and works well. |
429 | 0 | if (l->IsRevoked()) { |
430 | 0 | mListeners.RemoveElementAt(i); |
431 | 0 | continue; |
432 | 0 | } |
433 | 0 | l->Dispatch(std::forward<Ts>(aEvents)...); |
434 | 0 | } |
435 | 0 | } Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::NotifyInternal<bool>(bool&&) Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::TimedMetadata>::NotifyInternal<mozilla::TimedMetadata>(mozilla::TimedMetadata&&) Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaPlaybackEvent>::NotifyInternal<mozilla::MediaPlaybackEvent::EventType&>(mozilla::MediaPlaybackEvent::EventType&) Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaDecoderOwner::NextFrameStatus>::NotifyInternal<mozilla::MediaDecoderOwner::NextFrameStatus&>(mozilla::MediaDecoderOwner::NextFrameStatus&) Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::AudioData> >::NotifyInternal<RefPtr<mozilla::AudioData>&>(RefPtr<mozilla::AudioData>&) Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::VideoData> >::NotifyInternal<RefPtr<mozilla::VideoData>&>(RefPtr<mozilla::VideoData>&) Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>::NotifyInternal<mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>(mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >&&, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >&&, mozilla::MediaDecoderEventVisibility&&) Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaPlaybackEvent>::NotifyInternal<mozilla::MediaPlaybackEvent&>(mozilla::MediaPlaybackEvent&) Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaResult>::NotifyInternal<mozilla::MediaResult const&>(mozilla::MediaResult const&) Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility>::NotifyInternal<nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility&>(nsAutoPtr<mozilla::MediaInfo>&&, mozilla::MediaDecoderEventVisibility&) Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::DecoderDoctorEvent>::NotifyInternal<mozilla::DecoderDoctorEvent&>(mozilla::DecoderDoctorEvent&) Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, nsTArray<unsigned char>, nsTString<char16_t> >::NotifyInternal<nsTArray<unsigned char>&, nsTString<char16_t>&>(nsTArray<unsigned char>&, nsTString<char16_t>&) Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, long>::NotifyInternal<long&>(long&) Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, bool>::NotifyInternal<bool&>(bool&) Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::TrackInfo::TrackType>::NotifyInternal<mozilla::TrackInfo::TrackType const&>(mozilla::TrackInfo::TrackType const&) |
436 | | |
437 | | private: |
438 | | Mutex mMutex; |
439 | | nsTArray<RefPtr<Listener>> mListeners; |
440 | | }; |
441 | | |
442 | | template <typename... Es> |
443 | | using MediaEventSource = |
444 | | MediaEventSourceImpl<ListenerPolicy::NonExclusive, Es...>; |
445 | | |
446 | | template <typename... Es> |
447 | | using MediaEventSourceExc = |
448 | | MediaEventSourceImpl<ListenerPolicy::Exclusive, Es...>; |
449 | | |
450 | | /** |
451 | | * A class to separate the interface of event subject (MediaEventSource) |
452 | | * and event publisher. Mostly used as a member variable to publish events |
453 | | * to the listeners. |
454 | | */ |
455 | | template <typename... Es> |
456 | | class MediaEventProducer : public MediaEventSource<Es...> { |
457 | | public: |
458 | | template <typename... Ts> |
459 | 0 | void Notify(Ts&&... aEvents) { |
460 | 0 | // Pass lvalues to prevent move in NonExclusive mode. |
461 | 0 | this->NotifyInternal(aEvents...); |
462 | 0 | } Unexecuted instantiation: void mozilla::MediaEventProducer<mozilla::MediaPlaybackEvent>::Notify<mozilla::MediaPlaybackEvent::EventType>(mozilla::MediaPlaybackEvent::EventType&&) Unexecuted instantiation: void mozilla::MediaEventProducer<mozilla::MediaDecoderOwner::NextFrameStatus>::Notify<mozilla::MediaDecoderOwner::NextFrameStatus>(mozilla::MediaDecoderOwner::NextFrameStatus&&) Unexecuted instantiation: void mozilla::MediaEventProducer<RefPtr<mozilla::AudioData> >::Notify<RefPtr<mozilla::AudioData>&>(RefPtr<mozilla::AudioData>&) Unexecuted instantiation: void mozilla::MediaEventProducer<RefPtr<mozilla::VideoData> >::Notify<RefPtr<mozilla::VideoData>&>(RefPtr<mozilla::VideoData>&) Unexecuted instantiation: void mozilla::MediaEventProducer<RefPtr<mozilla::AudioData> >::Notify<RefPtr<mozilla::AudioData> >(RefPtr<mozilla::AudioData>&&) Unexecuted instantiation: void mozilla::MediaEventProducer<RefPtr<mozilla::VideoData> >::Notify<RefPtr<mozilla::VideoData> >(RefPtr<mozilla::VideoData>&&) Unexecuted instantiation: void mozilla::MediaEventProducer<mozilla::MediaPlaybackEvent>::Notify<mozilla::MediaPlaybackEvent>(mozilla::MediaPlaybackEvent&&) Unexecuted instantiation: void mozilla::MediaEventProducer<mozilla::MediaResult>::Notify<mozilla::MediaResult const&>(mozilla::MediaResult const&) Unexecuted instantiation: void mozilla::MediaEventProducer<mozilla::DecoderDoctorEvent>::Notify<mozilla::DecoderDoctorEvent>(mozilla::DecoderDoctorEvent&&) Unexecuted instantiation: void mozilla::MediaEventProducer<nsTArray<unsigned char>, nsTString<char16_t> >::Notify<nsTArray<unsigned char>&, nsTString<char16_t>&>(nsTArray<unsigned char>&, nsTString<char16_t>&) Unexecuted instantiation: void mozilla::MediaEventProducer<long>::Notify<long&>(long&) Unexecuted instantiation: void mozilla::MediaEventProducer<bool>::Notify<bool&>(bool&) Unexecuted instantiation: void mozilla::MediaEventProducer<mozilla::TrackInfo::TrackType>::Notify<mozilla::TrackInfo::TrackType const&>(mozilla::TrackInfo::TrackType const&) |
463 | | }; |
464 | | |
465 | | /** |
466 | | * Specialization for void type. A dummy bool is passed to NotifyInternal |
467 | | * since there is no way to pass a void value. |
468 | | */ |
469 | | template <> |
470 | | class MediaEventProducer<void> : public MediaEventSource<void> { |
471 | | public: |
472 | 0 | void Notify() { |
473 | 0 | this->NotifyInternal(true /* dummy */); |
474 | 0 | } |
475 | | }; |
476 | | |
477 | | /** |
478 | | * A producer allowing at most one listener. |
479 | | */ |
480 | | template <typename... Es> |
481 | | class MediaEventProducerExc : public MediaEventSourceExc<Es...> { |
482 | | public: |
483 | | template <typename... Ts> |
484 | 0 | void Notify(Ts&&... aEvents) { |
485 | 0 | this->NotifyInternal(std::forward<Ts>(aEvents)...); |
486 | 0 | } Unexecuted instantiation: void mozilla::MediaEventProducerExc<mozilla::TimedMetadata>::Notify<mozilla::TimedMetadata>(mozilla::TimedMetadata&&) Unexecuted instantiation: void mozilla::MediaEventProducerExc<mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>::Notify<mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>(mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >&&, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >&&, mozilla::MediaDecoderEventVisibility&&) Unexecuted instantiation: void mozilla::MediaEventProducerExc<nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility>::Notify<nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility&>(nsAutoPtr<mozilla::MediaInfo>&&, mozilla::MediaDecoderEventVisibility&) |
487 | | }; |
488 | | |
489 | | } // namespace mozilla |
490 | | |
491 | | #endif //MediaEventSource_h_ |