Current section

Files

Jump to
rclex c_src include total_nif.h
Raw

c_src/include/total_nif.h

#ifdef __cplusplus
extern "C"
{
#endif
#include <erl_nif.h>
#include "init_nif.h"
#include "node_nif.h"
#include "publisher_nif.h"
#include "msg/msg_int16_nif.h"
#include "msg/msg_string_nif.h"
#include "subscription_nif.h"
#include "wait_nif.h"
//各種リソースタイプの宣言やリソースタイプの作成を行う
//------------------------nif_init.c-------------------
ErlNifResourceType* rt_ret;
ErlNifResourceType* rt_context;
ErlNifResourceType* rt_init_options;
//------------------------node_nif.cで追加--------------------
ErlNifResourceType* rt_node;
ErlNifResourceType* rt_node_options;
//-----------------------publisher_nif.cで追加-------------------
ErlNifResourceType* rt_pub;
ErlNifResourceType* rt_pub_options;
ErlNifResourceType* rt_msg_type_support;
ErlNifResourceType* rt_pub_alloc;
//----------------------subscription_nif.cで追加-------------------
ErlNifResourceType* rt_sub;
ErlNifResourceType* rt_sub_options;
ErlNifResourceType* rt_msginfo;
ErlNifResourceType* rt_sub_alloc;
//----------------------msg_int16_nif.c------------
ErlNifResourceType* rt_Int16;
//----------------------msg_string_nif.c---------------
ErlNifResourceType* rt_String;
//-------------------wait_nif.cで追加------------------------
ErlNifResourceType* rt_default_alloc;
ErlNifResourceType* rt_waitset;
ERL_NIF_TERM atom_ok;
ERL_NIF_TERM atom_true;
ERL_NIF_TERM atom_false;
//リソースタイプを作る.load()から呼び出される
int open_resource(ErlNifEnv* env);
//@on_loadで呼び出す
static int load(ErlNifEnv* env, void** priv,ERL_NIF_TERM load_info);
static int reload(ErlNifEnv* env,void** priv,ERL_NIF_TERM load_info);
static int upgrade(ErlNifEnv* env, void** priv,void** old_priv,ERL_NIF_TERM load_info);
static void unload(ErlNifEnv* env, void* priv);
#ifdef __cplusplus
}
#endif