Shaka Player Embedded
Classes | Public Member Functions | Protected Member Functions | List of all members
shaka::BackingObjectFactoryBase Class Reference

#include <backing_object_factory.h>

Inheritance diagram for shaka::BackingObjectFactoryBase:
shaka::BackingObjectFactoryRegistry< Attr > shaka::BackingObjectFactoryRegistry< AudioTrack > shaka::BackingObjectFactoryRegistry< CharacterData > shaka::BackingObjectFactoryRegistry< Comment > shaka::BackingObjectFactoryRegistry< Console > shaka::BackingObjectFactoryRegistry< ContainerNode > shaka::BackingObjectFactoryRegistry< Debug > shaka::BackingObjectFactoryRegistry< Document > shaka::BackingObjectFactoryRegistry< DOMException > shaka::BackingObjectFactoryRegistry< DOMParser > shaka::BackingObjectFactoryRegistry< DOMStringList > shaka::BackingObjectFactoryRegistry< Element > shaka::BackingObjectFactoryRegistry< Event > shaka::BackingObjectFactoryRegistry< EventTarget > shaka::BackingObjectFactoryRegistry< HTMLMediaElement > shaka::BackingObjectFactoryRegistry< HTMLVideoElement > shaka::BackingObjectFactoryRegistry< IDBCursor > shaka::BackingObjectFactoryRegistry< IDBDatabase > shaka::BackingObjectFactoryRegistry< IDBFactory > shaka::BackingObjectFactoryRegistry< IDBObjectStore > shaka::BackingObjectFactoryRegistry< IDBOpenDBRequest > shaka::BackingObjectFactoryRegistry< IDBRequest > shaka::BackingObjectFactoryRegistry< IDBTransaction > shaka::BackingObjectFactoryRegistry< IDBVersionChangeEvent > shaka::BackingObjectFactoryRegistry< Location > shaka::BackingObjectFactoryRegistry< MediaEncryptedEvent > shaka::BackingObjectFactoryRegistry< MediaError > shaka::BackingObjectFactoryRegistry< MediaKeyMessageEvent > shaka::BackingObjectFactoryRegistry< MediaKeys > shaka::BackingObjectFactoryRegistry< MediaKeySession > shaka::BackingObjectFactoryRegistry< MediaKeySystemAccess > shaka::BackingObjectFactoryRegistry< MediaSource > shaka::BackingObjectFactoryRegistry< Navigator > shaka::BackingObjectFactoryRegistry< Node > shaka::BackingObjectFactoryRegistry< ProgressEvent > shaka::BackingObjectFactoryRegistry< SourceBuffer > shaka::BackingObjectFactoryRegistry< TestType > shaka::BackingObjectFactoryRegistry< Text > shaka::BackingObjectFactoryRegistry< TextTrack > shaka::BackingObjectFactoryRegistry< TimeRanges > shaka::BackingObjectFactoryRegistry< URL > shaka::BackingObjectFactoryRegistry< VideoTrack > shaka::BackingObjectFactoryRegistry< VTTCue > shaka::BackingObjectFactoryRegistry< XMLHttpRequest > shaka::BackingObjectFactoryRegistry< T >

Public Member Functions

virtual ~BackingObjectFactoryBase ()
 
const std::string & name () const
 
const BackingObjectFactoryBasebase () const
 
ReturnVal< JsValue > GetConstructor () const
 
bool DerivedFrom (const std::string &name) const
 
ReturnVal< JsValue > WrapInstance (BackingObject *object)
 
ReturnVal< JsValue > GetIndex (Handle< JsObject > that, size_t index)
 
void SetIndex (Handle< JsObject > that, size_t index, Handle< JsValue > value)
 

Protected Member Functions

 BackingObjectFactoryBase (const std::string &name, NativeCtor ctor, const BackingObjectFactoryBase *base)
 
template<typename Callback >
void AddMemberFunction (const std::string &name, Callback callback)
 
template<typename Ret , typename... Args>
void AddStaticFunction (const std::string &name, Ret(*callback)(Args...))
 
template<typename Prop >
void AddListenerField (js::EventType type, Prop member)
 
template<typename This , typename Prop >
void AddReadOnlyProperty (const std::string &name, Prop This::*member)
 
template<typename This , typename Prop >
void AddReadWriteProperty (const std::string &name, Prop This::*member)
 
template<typename Derived = void, typename This = void, typename GetProp = void>
void AddGenericProperty (const std::string &name, GetProp(This::*get)() const)
 
template<typename Derived = void, typename This = void, typename GetProp = void, typename SetProp = void, typename SetPropRet = void>
void AddGenericProperty (const std::string &name, GetProp(This::*get)() const, SetPropRet(This::*set)(SetProp))
 
template<typename T >
void AddConstant (const std::string &name, T value)
 
template<typename This , typename T >
void AddIndexer (bool(This::*get)(size_t, T *) const, void(This::*set)(size_t, T)=nullptr)
 
void NotImplemented (const std::string &name)
 

Detailed Description

A base type that defines a factory that creates BackingObject instances. This has several helper methods to register member functions and properties.

For each type exposed to JavaScript, create one type that inherits from BackingObject that defines members that will be exposed to Javascript and a factory that inherits from BackingObjectFactory<T> for the object type T. The factory constructor should call methods defined here to register the member pointers of the object.

The type T must define one namespace item:

Definition at line 156 of file backing_object_factory.h.

Constructor & Destructor Documentation

§ ~BackingObjectFactoryBase()

shaka::BackingObjectFactoryBase::~BackingObjectFactoryBase ( )
virtual

Definition at line 155 of file backing_object_factory.cc.

§ BackingObjectFactoryBase()

shaka::BackingObjectFactoryBase::BackingObjectFactoryBase ( const std::string &  name,
NativeCtor  ctor,
const BackingObjectFactoryBase base 
)
protected

Definition at line 101 of file backing_object_factory.cc.

Member Function Documentation

§ AddConstant()

template<typename T >
void shaka::BackingObjectFactoryBase::AddConstant ( const std::string &  name,
value 
)
inlineprotected

Definition at line 306 of file backing_object_factory.h.

§ AddGenericProperty() [1/2]

template<typename Derived = void, typename This = void, typename GetProp = void>
void shaka::BackingObjectFactoryBase::AddGenericProperty ( const std::string &  name,
GetProp(This::*)() const  get 
)
inlineprotected

Definition at line 279 of file backing_object_factory.h.

§ AddGenericProperty() [2/2]

template<typename Derived = void, typename This = void, typename GetProp = void, typename SetProp = void, typename SetPropRet = void>
void shaka::BackingObjectFactoryBase::AddGenericProperty ( const std::string &  name,
GetProp(This::*)() const  get,
SetPropRet(This::*)(SetProp)  set 
)
inlineprotected

Definition at line 290 of file backing_object_factory.h.

§ AddIndexer()

template<typename This , typename T >
void shaka::BackingObjectFactoryBase::AddIndexer ( bool(This::*)(size_t, T *) const  get,
void(This::*)(size_t, T)  set = nullptr 
)
inlineprotected

Definition at line 313 of file backing_object_factory.h.

§ AddListenerField()

template<typename Prop >
void shaka::BackingObjectFactoryBase::AddListenerField ( js::EventType  type,
Prop  member 
)
inlineprotected

Registers a field that is the on- listener for the given event. You MUST call AddListenerField in the object's constructor ALSO.

Definition at line 236 of file backing_object_factory.h.

§ AddMemberFunction()

template<typename Callback >
void shaka::BackingObjectFactoryBase::AddMemberFunction ( const std::string &  name,
Callback  callback 
)
inlineprotected

Definition at line 216 of file backing_object_factory.h.

§ AddReadOnlyProperty()

template<typename This , typename Prop >
void shaka::BackingObjectFactoryBase::AddReadOnlyProperty ( const std::string &  name,
Prop This::*  member 
)
inlineprotected

Definition at line 241 of file backing_object_factory.h.

§ AddReadWriteProperty()

template<typename This , typename Prop >
void shaka::BackingObjectFactoryBase::AddReadWriteProperty ( const std::string &  name,
Prop This::*  member 
)
inlineprotected

Definition at line 258 of file backing_object_factory.h.

§ AddStaticFunction()

template<typename Ret , typename... Args>
void shaka::BackingObjectFactoryBase::AddStaticFunction ( const std::string &  name,
Ret(*)(Args...)  callback 
)
inlineprotected

Definition at line 224 of file backing_object_factory.h.

§ base()

const BackingObjectFactoryBase* shaka::BackingObjectFactoryBase::base ( ) const
inline
Returns
The base factory for the base type of this object, or nullptr.

Definition at line 166 of file backing_object_factory.h.

§ DerivedFrom()

bool shaka::BackingObjectFactoryBase::DerivedFrom ( const std::string &  name) const
Returns
Whether the objects being generated are derived from the given type. Note that this returns true if name() is passed.

Definition at line 157 of file backing_object_factory.cc.

§ GetConstructor()

ReturnVal<JsValue> shaka::BackingObjectFactoryBase::GetConstructor ( ) const
inline
Returns
The value containing the constructor function.

Definition at line 171 of file backing_object_factory.h.

§ GetIndex()

ReturnVal< JsValue > shaka::BackingObjectFactoryBase::GetIndex ( Handle< JsObject >  that,
size_t  index 
)

This is called when an object created by this factory is indexed.

Parameters
thatThe JavaScript value |this|.
indexThe index that was requested.
Returns
The value at that index, or |undefined|.

Definition at line 173 of file backing_object_factory.cc.

§ name()

const std::string& shaka::BackingObjectFactoryBase::name ( ) const
inline
Returns
The name of the type being generated.

Definition at line 161 of file backing_object_factory.h.

§ NotImplemented()

void shaka::BackingObjectFactoryBase::NotImplemented ( const std::string &  name)
protected

Definition at line 186 of file backing_object_factory.cc.

§ SetIndex()

void shaka::BackingObjectFactoryBase::SetIndex ( Handle< JsObject >  that,
size_t  index,
Handle< JsValue >  value 
)

This is called when an object created by this factory is indexed.

Parameters
thatThe JavaScript value |this|.
indexThe index that was requested.
valueThe value that was set to.

Definition at line 180 of file backing_object_factory.cc.

§ WrapInstance()

ReturnVal< JsValue > shaka::BackingObjectFactoryBase::WrapInstance ( BackingObject object)

Wraps the given backing instance in a JavaScript object. This is can only be called on the event thread. The argument is assumed to be of the correct type.

Definition at line 165 of file backing_object_factory.cc.


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