git.schokokeks.org
Repositories
Help
Report an Issue
fs-words.git
Code
Commits
Branches
Tags
Suche
Strukturansicht:
6e9c872
Branches
Tags
develop-client_server
master
typescript
fs-words.git
server
lib
node_modules
node-addon-api
napi-inl.deprecated.h
[add] server:lib:node_modules
Christian Fraß
commited
6e9c872
at 2021-03-08 23:52:07
napi-inl.deprecated.h
Blame
History
Raw
#ifndef SRC_NAPI_INL_DEPRECATED_H_ #define SRC_NAPI_INL_DEPRECATED_H_ //////////////////////////////////////////////////////////////////////////////// // PropertyDescriptor class //////////////////////////////////////////////////////////////////////////////// template <typename Getter> inline PropertyDescriptor PropertyDescriptor::Accessor(const char* utf8name, Getter getter, napi_property_attributes attributes, void* /*data*/) { typedef details::CallbackData<Getter, Napi::Value> CbData; // TODO: Delete when the function is destroyed auto callbackData = new CbData({ getter, nullptr }); return PropertyDescriptor({ utf8name, nullptr, nullptr, CbData::Wrapper, nullptr, nullptr, attributes, callbackData }); } template <typename Getter> inline PropertyDescriptor PropertyDescriptor::Accessor(const std::string& utf8name, Getter getter, napi_property_attributes attributes, void* data) { return Accessor(utf8name.c_str(), getter, attributes, data); } template <typename Getter> inline PropertyDescriptor PropertyDescriptor::Accessor(napi_value name, Getter getter, napi_property_attributes attributes, void* /*data*/) { typedef details::CallbackData<Getter, Napi::Value> CbData; // TODO: Delete when the function is destroyed auto callbackData = new CbData({ getter, nullptr }); return PropertyDescriptor({ nullptr, name, nullptr, CbData::Wrapper, nullptr, nullptr, attributes, callbackData }); } template <typename Getter> inline PropertyDescriptor PropertyDescriptor::Accessor(Name name, Getter getter, napi_property_attributes attributes, void* data) { napi_value nameValue = name; return PropertyDescriptor::Accessor(nameValue, getter, attributes, data); } template <typename Getter, typename Setter> inline PropertyDescriptor PropertyDescriptor::Accessor(const char* utf8name, Getter getter, Setter setter, napi_property_attributes attributes, void* /*data*/) { typedef details::AccessorCallbackData<Getter, Setter> CbData; // TODO: Delete when the function is destroyed auto callbackData = new CbData({ getter, setter, nullptr }); return PropertyDescriptor({ utf8name, nullptr, nullptr, CbData::GetterWrapper, CbData::SetterWrapper, nullptr, attributes, callbackData }); } template <typename Getter, typename Setter> inline PropertyDescriptor PropertyDescriptor::Accessor(const std::string& utf8name, Getter getter, Setter setter, napi_property_attributes attributes, void* data) { return Accessor(utf8name.c_str(), getter, setter, attributes, data); } template <typename Getter, typename Setter> inline PropertyDescriptor PropertyDescriptor::Accessor(napi_value name, Getter getter, Setter setter, napi_property_attributes attributes, void* /*data*/) { typedef details::AccessorCallbackData<Getter, Setter> CbData; // TODO: Delete when the function is destroyed auto callbackData = new CbData({ getter, setter, nullptr }); return PropertyDescriptor({ nullptr, name, nullptr, CbData::GetterWrapper, CbData::SetterWrapper, nullptr, attributes, callbackData }); } template <typename Getter, typename Setter> inline PropertyDescriptor PropertyDescriptor::Accessor(Name name, Getter getter, Setter setter, napi_property_attributes attributes, void* data) { napi_value nameValue = name; return PropertyDescriptor::Accessor(nameValue, getter, setter, attributes, data); } template <typename Callable> inline PropertyDescriptor PropertyDescriptor::Function(const char* utf8name, Callable cb, napi_property_attributes attributes, void* /*data*/) { typedef decltype(cb(CallbackInfo(nullptr, nullptr))) ReturnType; typedef details::CallbackData<Callable, ReturnType> CbData; // TODO: Delete when the function is destroyed auto callbackData = new CbData({ cb, nullptr }); return PropertyDescriptor({ utf8name, nullptr, CbData::Wrapper, nullptr, nullptr, nullptr, attributes, callbackData }); } template <typename Callable> inline PropertyDescriptor PropertyDescriptor::Function(const std::string& utf8name, Callable cb, napi_property_attributes attributes, void* data) { return Function(utf8name.c_str(), cb, attributes, data); } template <typename Callable> inline PropertyDescriptor PropertyDescriptor::Function(napi_value name, Callable cb, napi_property_attributes attributes, void* /*data*/) { typedef decltype(cb(CallbackInfo(nullptr, nullptr))) ReturnType; typedef details::CallbackData<Callable, ReturnType> CbData; // TODO: Delete when the function is destroyed auto callbackData = new CbData({ cb, nullptr }); return PropertyDescriptor({ nullptr, name, CbData::Wrapper, nullptr, nullptr, nullptr, attributes, callbackData }); } template <typename Callable> inline PropertyDescriptor PropertyDescriptor::Function(Name name, Callable cb, napi_property_attributes attributes, void* data) { napi_value nameValue = name; return PropertyDescriptor::Function(nameValue, cb, attributes, data); } #endif // !SRC_NAPI_INL_DEPRECATED_H_