diff options
Diffstat (limited to 'src/bindings/eldbus_js/eldbus_js_core.cc')
-rw-r--r-- | src/bindings/eldbus_js/eldbus_js_core.cc | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/src/bindings/eldbus_js/eldbus_js_core.cc b/src/bindings/eldbus_js/eldbus_js_core.cc new file mode 100644 index 0000000000..e9a8c3344d --- /dev/null +++ b/src/bindings/eldbus_js/eldbus_js_core.cc @@ -0,0 +1,183 @@ +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <Eldbus_Js.hh> + +namespace efl { namespace eldbus { namespace js { + +namespace { + +void register_init(v8::Isolate *isolate, v8::Handle<v8::Object> global, + v8::Handle<v8::String> name) +{ + using v8::Integer; + using v8::FunctionTemplate; + + auto init = [](compatibility_callback_info_type args) + -> compatibility_return_type { + if (args.Length() != 0) + return compatibility_return(); + + auto isolate = args.GetIsolate(); + auto ret = eldbus_init(); + return compatibility_return(compatibility_new<Integer>(isolate, ret), + args); + }; + + global->Set(name, + compatibility_new<FunctionTemplate>(isolate, init) + ->GetFunction()); +} + +void register_shutdown(v8::Isolate *isolate, v8::Handle<v8::Object> global, + v8::Handle<v8::String> name) +{ + using v8::Integer; + using v8::FunctionTemplate; + + auto shutdown = [](compatibility_callback_info_type args) + -> compatibility_return_type { + if (args.Length() != 0) + return compatibility_return(); + + auto isolate = args.GetIsolate(); + auto ret = eldbus_shutdown(); + return compatibility_return(compatibility_new<Integer>(isolate, ret), + args); + }; + + global->Set(name, + compatibility_new<FunctionTemplate>(isolate, shutdown) + ->GetFunction()); +} + +void register_fdo_bus(v8::Isolate *isolate, v8::Handle<v8::Object> global, + v8::Handle<v8::String> name) +{ + using v8::String; + global->Set(name, compatibility_new<String>(isolate, ELDBUS_FDO_BUS)); +} + +void register_fdo_path(v8::Isolate *isolate, v8::Handle<v8::Object> global, + v8::Handle<v8::String> name) +{ + using v8::String; + global->Set(name, compatibility_new<String>(isolate, ELDBUS_FDO_PATH)); +} + +void register_fdo_interface(v8::Isolate *isolate, v8::Handle<v8::Object> global, + v8::Handle<v8::String> name) +{ + using v8::String; + global->Set(name, compatibility_new<String>(isolate, ELDBUS_FDO_INTERFACE)); +} + +void register_fdo_interface_properties(v8::Isolate *isolate, + v8::Handle<v8::Object> global, + v8::Handle<v8::String> name) +{ + using v8::String; + global->Set(name, + compatibility_new<String>(isolate, + ELDBUS_FDO_INTERFACE_PROPERTIES)); +} + +void register_fdo_interface_object_manager(v8::Isolate *isolate, + v8::Handle<v8::Object> global, + v8::Handle<v8::String> name) +{ + using v8::String; + global->Set(name, + compatibility_new<String>(isolate, + ELDBUS_FDO_INTERFACE_OBJECT_MANAGER)); +} + +void register_fdo_interface_introspectable(v8::Isolate *isolate, + v8::Handle<v8::Object> global, + v8::Handle<v8::String> name) +{ + using v8::String; + global->Set(name, + compatibility_new<String>(isolate, + ELDBUS_FDO_INTERFACE_INTROSPECTABLE)); +} + +void register_fdo_inteface_peer(v8::Isolate *isolate, + v8::Handle<v8::Object> global, + v8::Handle<v8::String> name) +{ + using v8::String; + global->Set(name, + compatibility_new<String>(isolate, ELDBUS_FDO_INTEFACE_PEER)); +} + +void register_error_pending_canceled(v8::Isolate *isolate, + v8::Handle<v8::Object> global, + v8::Handle<v8::String> name) +{ + using v8::String; + global->Set(name, + compatibility_new<String>(isolate, + ELDBUS_ERROR_PENDING_CANCELED)); +} + +void register_error_pending_timeout(v8::Isolate *isolate, + v8::Handle<v8::Object> global, + v8::Handle<v8::String> name) +{ + using v8::String; + global->Set(name, + compatibility_new<String>(isolate, + ELDBUS_ERROR_PENDING_TIMEOUT)); +} + +} + +EAPI +void register_eldbus_core(v8::Isolate* isolate, v8::Handle<v8::Object> exports) +{ + using v8::String; + register_init(isolate, exports, + compatibility_new<String>(isolate, "eldbus_init")); + register_shutdown(isolate, exports, + compatibility_new<String>(isolate, "eldbus_shutdown")); + register_fdo_bus(isolate, exports, + compatibility_new<String>(isolate, "ELDBUS_FDO_BUS")); + register_fdo_path(isolate, exports, + compatibility_new<String>(isolate, "ELDBUS_FDO_PATH")); + register_fdo_interface(isolate, exports, + compatibility_new<String>(isolate, + "ELDBUS_FDO_INTERFACE")); + register_fdo_interface_properties(isolate, exports, + compatibility_new<String> + (isolate, + "ELDBUS_FDO_INTERFACE_PROPERTIES")); + register_fdo_interface_object_manager(isolate, exports, + compatibility_new<String> + (isolate, "ELDBUS_FDO_INTERFACE_OBJECT_MANAGER")); + + register_fdo_interface_introspectable + (isolate, exports, + compatibility_new<String>(isolate, + "ELDBUS_FDO_INTERFACE_INTROSPECTABLE")); + register_fdo_inteface_peer(isolate, exports, + compatibility_new<String> + (isolate, "ELDBUS_FDO_INTEFACE_PEER")); + register_error_pending_canceled + (isolate, exports, + compatibility_new<String>(isolate, "ELDBUS_ERROR_PENDING_CANCELED")); + register_error_pending_timeout + (isolate, exports, + compatibility_new<String>(isolate, "ELDBUS_ERROR_PENDING_TIMEOUT")); +} + +EAPI void register_eldbus(v8::Isolate* isolate, v8::Handle<v8::Object> exports) +{ + register_eldbus_connection(isolate, exports); + register_eldbus_core(isolate, exports); + register_eldbus_message(isolate, exports); + register_eldbus_object_mapper(isolate, exports); +} + +} } } // namespace efl { namespace eldbus { namespace js { |