1 #ifndef JSMEDIASERVER_H
2 #define JSMEDIASERVER_H
4 #include "MediaServer.h"
5 #include <dpl/shared_ptr.h>
6 #include <JavaScriptCore/JavaScript.h>
7 #include <CommonsJavaScript/JSPendingOperationPrivateObject.h>
8 #include <CommonsJavaScript/PrivateObject.h>
11 namespace MediaServer {
13 typedef WrtDeviceApis::CommonsJavaScript::PrivateObject<MediaServerPtr, WrtDeviceApis::CommonsJavaScript::NoOwnership> MediaServerPrivObject;
18 static const JSClassDefinition* getClassInfo();
20 static const JSClassRef getClassRef();
22 static JSObjectRef createJSObject(JSContextRef context);
25 * The callback invoked when an object is first created.
27 static void initialize(JSContextRef context,
31 * The callback invoked when an object is finalized.
33 static void finalize(JSObjectRef object);
36 * The callback invoked when an object is used as the target of an 'instanceof' expression.
38 static bool hasInstance(JSContextRef ctx,
39 JSObjectRef constructor,
40 JSValueRef possibleInstance,
41 JSValueRef* exception);
44 * Getters for properties
46 static JSValueRef getProperty(JSContextRef context,
48 JSStringRef propertyName,
49 JSValueRef* exception);
53 * Browses for media item under a given MediaContainer.
55 static JSValueRef browse(JSContextRef context,
57 JSObjectRef thisObject,
59 const JSValueRef arguments[],
60 JSValueRef* exception);
64 * Searches for media item under a given MediaContainer.
66 static JSValueRef find(JSContextRef context,
68 JSObjectRef thisObject,
70 const JSValueRef arguments[],
71 JSValueRef* exception);
75 * This structure contains properties and callbacks that define a type of object.
77 static JSClassDefinition m_classInfo;
80 * This structure describes a statically declared function.
82 static JSStaticFunction m_function[];
85 * This member variable contains the initialization values for the
86 * properties of this class. The values are given according to the
87 * data structure JSPropertySpec.
89 static JSStaticValue m_property[];
91 static JSClassRef m_jsClassRef;
97 #endif // JSMEDIASERVER_H