jsaddle-clib-0.9.0.0: src/Language/Javascript/JSaddle/CLib/Internal.hsc
{-# LANGUAGE ForeignFunctionInterface #-}
module Language.Javascript.JSaddle.CLib.Internal where
import Foreign
import Foreign.C
#include "jsaddle.h"
data NativeCallbacks = NativeCallbacks
{ _nativeCallbacks_jsaddleStart :: !(FunPtr (IO ())) -- void (jsaddleStart *)()
, _nativeCallbacks_jsaddleResult :: !(FunPtr (CString -> IO ())) -- void (jsaddleResult *)(char *)
, _nativeCallbacks_jsaddleSyncResult :: !(FunPtr (CString -> IO CString)) -- char * (jsaddleSyncResult *)(char *)
, _nativeCallbacks_jsaddleJsData :: !CString -- char * jsaddleJsData
, _nativeCallbacks_jsaddleHtmlData :: !CString -- char * jsaddleHtmlData
}
instance Storable NativeCallbacks where
sizeOf _ = #{size native_callbacks}
alignment _ = #{alignment native_callbacks}
poke p nc = do
#{poke native_callbacks, jsaddleStart} p $ _nativeCallbacks_jsaddleStart nc
#{poke native_callbacks, jsaddleResult} p $ _nativeCallbacks_jsaddleResult nc
#{poke native_callbacks, jsaddleSyncResult} p $ _nativeCallbacks_jsaddleSyncResult nc
#{poke native_callbacks, jsaddleJsData} p $ _nativeCallbacks_jsaddleJsData nc
#{poke native_callbacks, jsaddleHtmlData} p $ _nativeCallbacks_jsaddleHtmlData nc
peek p = NativeCallbacks
<$> #{peek native_callbacks, jsaddleStart} p
<*> #{peek native_callbacks, jsaddleResult} p
<*> #{peek native_callbacks, jsaddleSyncResult} p
<*> #{peek native_callbacks, jsaddleJsData} p
<*> #{peek native_callbacks, jsaddleHtmlData} p
data AppCallbacks = AppCallbacks
{ _appCallbacks_mainActivity_onCreate :: !(FunPtr (IO ()))
, _appCallbacks_mainActivity_onStart :: !(FunPtr (IO ()))
, _appCallbacks_mainActivity_onResume :: !(FunPtr (IO ()))
, _appCallbacks_mainActivity_onPause :: !(FunPtr (IO ()))
, _appCallbacks_mainActivity_onStop :: !(FunPtr (IO ()))
, _appCallbacks_mainActivity_onDestroy :: !(FunPtr (IO ()))
, _appCallbacks_mainActivity_onRestart :: !(FunPtr (IO ()))
, _appCallbacks_mainActivity_onNewIntent :: !(FunPtr (CString -> CString -> IO ()))
, _appCallbacks_firebaseInstanceIdService_sendRegistrationToServer :: !(FunPtr (CString -> IO ()))
}
instance Storable AppCallbacks where
sizeOf _ = #{size app_callbacks}
alignment _ = #{alignment app_callbacks}
poke p nc = do
#{poke app_callbacks, mainActivity_onCreate} p $ _appCallbacks_mainActivity_onCreate nc
#{poke app_callbacks, mainActivity_onStart} p $ _appCallbacks_mainActivity_onStart nc
#{poke app_callbacks, mainActivity_onResume} p $ _appCallbacks_mainActivity_onResume nc
#{poke app_callbacks, mainActivity_onPause} p $ _appCallbacks_mainActivity_onPause nc
#{poke app_callbacks, mainActivity_onStop} p $ _appCallbacks_mainActivity_onStop nc
#{poke app_callbacks, mainActivity_onDestroy} p $ _appCallbacks_mainActivity_onDestroy nc
#{poke app_callbacks, mainActivity_onRestart} p $ _appCallbacks_mainActivity_onRestart nc
#{poke app_callbacks, mainActivity_onNewIntent} p $ _appCallbacks_mainActivity_onNewIntent nc
#{poke app_callbacks, firebaseInstanceIdService_sendRegistrationToServer} p $ _appCallbacks_firebaseInstanceIdService_sendRegistrationToServer nc
peek p = AppCallbacks
<$> #{peek app_callbacks, mainActivity_onCreate} p
<*> #{peek app_callbacks, mainActivity_onStart} p
<*> #{peek app_callbacks, mainActivity_onResume} p
<*> #{peek app_callbacks, mainActivity_onPause} p
<*> #{peek app_callbacks, mainActivity_onStop} p
<*> #{peek app_callbacks, mainActivity_onDestroy} p
<*> #{peek app_callbacks, mainActivity_onRestart} p
<*> #{peek app_callbacks, mainActivity_onNewIntent} p
<*> #{peek app_callbacks, firebaseInstanceIdService_sendRegistrationToServer} p