From 8f13607cba9d6cf4fc4a213ba5ae4bcd46f7e18d Mon Sep 17 00:00:00 2001 From: Determinant Date: Tue, 23 Jun 2015 13:32:42 +0800 Subject: separate non-Lua part of io code to a dedicated dir; code clean-up --- nerv/lib/luaT/luaT.h | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 nerv/lib/luaT/luaT.h (limited to 'nerv/lib/luaT/luaT.h') diff --git a/nerv/lib/luaT/luaT.h b/nerv/lib/luaT/luaT.h new file mode 100644 index 0000000..5e8dd2f --- /dev/null +++ b/nerv/lib/luaT/luaT.h @@ -0,0 +1,111 @@ +#ifndef LUAT_UTILS_INC +#define LUAT_UTILS_INC + +#ifdef __cplusplus +extern "C" { +#endif +#include +#include +#ifdef __cplusplus +} +#endif + +#ifndef LUA_EXTERNC +# ifdef __cplusplus +# define LUA_EXTERNC extern "C" +# else +# define LUA_EXTERNC extern +# endif +#endif + +#ifdef _MSC_VER +# define DLL_EXPORT __declspec(dllexport) +# define DLL_IMPORT __declspec(dllimport) +# ifdef luaT_EXPORTS +# define LUAT_API LUA_EXTERNC DLL_EXPORT +# else +# define LUAT_API LUA_EXTERNC DLL_IMPORT +# endif +#else +# define DLL_EXPORT +# define DLL_IMPORT +# define LUAT_API LUA_EXTERNC +#endif + + +/* C functions */ + +LUAT_API void* luaT_alloc(lua_State *L, long size); +LUAT_API void* luaT_realloc(lua_State *L, void *ptr, long size); +LUAT_API void luaT_free(lua_State *L, void *ptr); + +LUAT_API const char* luaT_newmetatable(lua_State *L, const char *tname, const char *parenttname, + lua_CFunction constructor, lua_CFunction destructor, lua_CFunction factory); + +LUAT_API int luaT_pushmetatable(lua_State *L, const char *tname); + +LUAT_API const char* luaT_typenameid(lua_State *L, const char *tname); +LUAT_API const char* luaT_typename(lua_State *L, int ud); + +LUAT_API void luaT_pushudata(lua_State *L, void *udata, const char *tname); +LUAT_API void *luaT_toudata(lua_State *L, int ud, const char *tname); +LUAT_API int luaT_isudata(lua_State *L, int ud, const char *tname); +LUAT_API void *luaT_checkudata(lua_State *L, int ud, const char *tname); + +LUAT_API void *luaT_getfieldcheckudata(lua_State *L, int ud, const char *field, const char *tname); +LUAT_API void *luaT_getfieldchecklightudata(lua_State *L, int ud, const char *field); +LUAT_API double luaT_getfieldchecknumber(lua_State *L, int ud, const char *field); +LUAT_API int luaT_getfieldcheckint(lua_State *L, int ud, const char *field); +LUAT_API const char* luaT_getfieldcheckstring(lua_State *L, int ud, const char *field); +LUAT_API int luaT_getfieldcheckboolean(lua_State *L, int ud, const char *field); +LUAT_API void luaT_getfieldchecktable(lua_State *L, int ud, const char *field); + +LUAT_API int luaT_typerror(lua_State *L, int ud, const char *tname); + +LUAT_API int luaT_checkboolean(lua_State *L, int ud); +LUAT_API int luaT_optboolean(lua_State *L, int ud, int def); + +LUAT_API void luaT_registeratname(lua_State *L, const struct luaL_Reg *methods, const char *name); + +/* utility functions */ +LUAT_API const char *luaT_classrootname(const char *tname); +LUAT_API int luaT_classmodulename(const char *tname, char *module_name); + +/* debug */ +LUAT_API void luaT_stackdump(lua_State *L); + +/* Lua functions */ +LUAT_API int luaT_lua_newmetatable(lua_State *L); +LUAT_API int luaT_lua_factory(lua_State *L); +LUAT_API int luaT_lua_getconstructortable(lua_State *L); +LUAT_API int luaT_lua_typename(lua_State *L); +LUAT_API int luaT_lua_isequal(lua_State *L); +LUAT_API int luaT_lua_pointer(lua_State *L); +LUAT_API int luaT_lua_setenv(lua_State *L); +LUAT_API int luaT_lua_getenv(lua_State *L); +LUAT_API int luaT_lua_getmetatable(lua_State *L); +LUAT_API int luaT_lua_version(lua_State *L); +LUAT_API int luaT_lua_setmetatable(lua_State *L); +LUAT_API int luaT_lua_metatype(lua_State *L); +LUAT_API int luaT_lua_pushudata(lua_State *L); + +/* deprecated functions */ +/* ids have been replaced by string names to identify classes */ +/* comments show what function (that you should use) they call now */ +#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) +#define LUAT_DEPRECATED __attribute__((__deprecated__)) +#elif defined(_MSC_VER) +#define LUAT_DEPRECATED __declspec(deprecated) +#else +#define LUAT_DEPRECATED +#endif + +LUAT_API LUAT_DEPRECATED int luaT_pushmetaclass(lua_State *L, const char *tname); /* same as luaT_pushmetatable */ +LUAT_API LUAT_DEPRECATED const char* luaT_id(lua_State *L, int ud); /* same as luaT_typename */ +LUAT_API LUAT_DEPRECATED const char* luaT_id2typename(lua_State *L, const char *id); /* same as luaT_typenameid */ +LUAT_API LUAT_DEPRECATED const char* luaT_typename2id(lua_State *L, const char*); /* same as luaT_typenameid */ +LUAT_API LUAT_DEPRECATED int luaT_getmetaclass(lua_State *L, int index); /* same as luaT_getmetatable */ +LUAT_API LUAT_DEPRECATED const char* luaT_checktypename2id(lua_State *L, const char *tname); /* same as luaT_typenameid */ +LUAT_API LUAT_DEPRECATED void luaT_registeratid(lua_State *L, const struct luaL_Reg *methods, const char *id); /* same as luaT_registeratname */ + +#endif -- cgit v1.2.3