Shaka Player Embedded
Classes | Public Types | Public Member Functions | Protected Member Functions | List of all members
shaka::js::events::EventTarget Class Reference

#include <event_target.h>

Inheritance diagram for shaka::js::events::EventTarget:
shaka::BackingObject shaka::memory::Traceable shaka::js::dom::Node shaka::js::eme::MediaKeySession shaka::js::idb::IDBDatabase shaka::js::idb::IDBFactory shaka::js::idb::IDBRequest shaka::js::idb::IDBTransaction shaka::js::mse::MediaSource shaka::js::mse::SourceBuffer shaka::js::mse::TextTrack shaka::js::mse::TrackList< JsTrack, PubTrack > shaka::js::XMLHttpRequest shaka::js::mse::TrackList< AudioTrack, media::MediaTrack > shaka::js::mse::TrackList< TextTrack, media::TextTrack > shaka::js::mse::TrackList< VideoTrack, media::MediaTrack >

Public Types

using Listener = optional< Callback >
 

Public Member Functions

 EventTarget ()
 
void Trace (memory::HeapTracer *tracer) const override
 
void AddEventListener (const std::string &type, Listener callback)
 
void SetCppEventListener (EventType type, std::function< void()> callback)
 
void RemoveEventListener (const std::string &type, Listener callback)
 
void UnsetCppEventListener (EventType type)
 
ExceptionOr< bool > DispatchEvent (RefPtr< Event > event)
 
ExceptionOr< bool > DispatchEventInternal (RefPtr< Event > event, bool *did_listeners_throw)
 
template<typename EventType , typename... Args>
std::shared_ptr< ThreadEvent< bool > > ScheduleEvent (Args &&... args)
 
template<typename EventType , typename... Args>
ExceptionOr< bool > RaiseEvent (Args... args)
 
- Public Member Functions inherited from shaka::BackingObject
 BackingObject ()
 
void Trace (memory::HeapTracer *tracer) const override
 
bool IsRootedAlive () const override
 
std::string name () const
 
virtual BackingObjectFactoryBasefactory () const =0
 
bool DerivedFrom (const std::string &base)
 
ReturnVal< JsValue > JsThis () const
 
void SetJsThis (Handle< JsObject > this_)
 
- Public Member Functions inherited from shaka::memory::Traceable
virtual ~Traceable ()
 
virtual bool IsShortLived () const
 

Protected Member Functions

void AddListenerField (EventType type, Listener *on_field)
 
- Protected Member Functions inherited from shaka::BackingObject
 ~BackingObject () override
 

Additional Inherited Members

- Static Public Member Functions inherited from shaka::BackingObject
static void * operator new[] (size_t size)=delete
 
static void operator delete[] (void *)=delete
 
- Static Public Attributes inherited from shaka::BackingObject
static constexpr const size_t kInternalFieldCount = 2
 
- Static Public Attributes inherited from shaka::memory::Traceable
static constexpr const uint64_t kShortLiveDurationMs = 5000
 

Detailed Description

Definition at line 40 of file event_target.h.

Member Typedef Documentation

§ Listener

Definition at line 46 of file event_target.h.

Constructor & Destructor Documentation

§ EventTarget()

shaka::js::events::EventTarget::EventTarget ( )

Definition at line 26 of file event_target.cc.

Member Function Documentation

§ AddEventListener()

void shaka::js::events::EventTarget::AddEventListener ( const std::string &  type,
Listener  callback 
)

Adds a js-backed event listener to the target.

Parameters
typeThe name of the event to listen for.
callbackThe listener for the event. Must be a function.

Definition at line 41 of file event_target.cc.

§ AddListenerField()

void shaka::js::events::EventTarget::AddListenerField ( EventType  type,
Listener on_field 
)
inlineprotected

Registers an event on the target.

Definition at line 138 of file event_target.h.

§ DispatchEvent()

ExceptionOr<bool> shaka::js::events::EventTarget::DispatchEvent ( RefPtr< Event event)
inline

Dispatches the event to the current object. This method blocks until the event is complete. The event is treated as not trusted even if it comes from internal code (Shaka Player doesn't care). This must be called from the event thread.

Parameters
eventThe event to dispatch.
Returns
False if one listener called preventDefault, otherwise true.

Definition at line 86 of file event_target.h.

§ DispatchEventInternal()

ExceptionOr< bool > shaka::js::events::EventTarget::DispatchEventInternal ( RefPtr< Event event,
bool *  did_listeners_throw 
)
See also
DispatchEvent
Parameters
eventThe event to dispatch
did_listeners_throw[OUT] If given, will be set to whether a listener threw an exception.
Returns
False if one listener called preventDefault, otherwise true.

Definition at line 68 of file event_target.cc.

§ RaiseEvent()

template<typename EventType , typename... Args>
ExceptionOr<bool> shaka::js::events::EventTarget::RaiseEvent ( Args...  args)
inline

Synchronously raises the given event on this. This must only be called from the event thread.

Definition at line 131 of file event_target.h.

§ RemoveEventListener()

void shaka::js::events::EventTarget::RemoveEventListener ( const std::string &  type,
Listener  callback 
)

Removes a js-backed event listener from the target.

Parameters
typeThe name of the event to remove.
callbackThe listener to remove.

Definition at line 52 of file event_target.cc.

§ ScheduleEvent()

template<typename EventType , typename... Args>
std::shared_ptr<ThreadEvent<bool> > shaka::js::events::EventTarget::ScheduleEvent ( Args &&...  args)
inline

Asynchronously raises the given event on this. It is safe to call this from any thread. There needs to be an explicit type parameter for the type of event to raise, the remaining types should be arguments to its constructor. The constructor used does not need to be the one used from JavaScript.

Definition at line 108 of file event_target.h.

§ SetCppEventListener()

void shaka::js::events::EventTarget::SetCppEventListener ( EventType  type,
std::function< void()>  callback 
)

Adds a not-js-backed event listener to the target. There should only be one such event listener per event.

Parameters
typeThe name of the event to listen for.
callbackThe listener for the event. Must be a function.

Definition at line 47 of file event_target.cc.

§ Trace()

Doxygen_Skip void shaka::js::events::EventTarget::Trace ( memory::HeapTracer tracer) const
overridevirtual

§ UnsetCppEventListener()

void shaka::js::events::EventTarget::UnsetCppEventListener ( EventType  type)

Removes a not-js-backed event listener from the target.

Parameters
typeThe name of the event to remove.

Definition at line 64 of file event_target.cc.


The documentation for this class was generated from the following files: