15 #ifndef SHAKA_EMBEDDED_JS_WRAPPER_H_ 16 #define SHAKA_EMBEDDED_JS_WRAPPER_H_ 18 #include <glog/logging.h> 39 template <
typename Func,
typename... Args>
41 -> decltype((inner->*member)(args...)) {
42 DCHECK(inner) <<
"Must call Initialize.";
46 std::bind(member, inner, args...))
50 template <
typename Var,
typename Val>
52 DCHECK(inner) <<
"Must call Initialize.";
53 auto callback = [
this, member, val]() { inner->*member = val; };
60 template <
typename Var>
62 DCHECK(inner) <<
"Must call Initialize.";
73 #endif // SHAKA_EMBEDDED_JS_WRAPPER_H_
static JsManagerImpl * Instance()
SHAKA_NON_COPYABLE_OR_MOVABLE_TYPE(JSWrapper)
auto GetMemberVariable(Var member) -> decltype(inner-> *member)
std::shared_ptr< ThreadEvent< impl::RetOf< Func > > > AddInternalTask(TaskPriority priority, const std::string &name, Func &&callback)
void SetMemberVariable(Var member, Val val)
auto CallInnerMethod(Func member, Args... args) -> decltype((inner-> *member)(args...))
TaskRunner * MainThread()