Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/network/src/tolua/tolua++.h @ 1494

Last change on this file since 1494 was 1494, checked in by rgrieder, 16 years ago
  • set the svn:eol-style property to all files so, that where ever you check out, you'll get the right line endings (had to change every file with mixed endings to windows in order to set the property)
  • Property svn:eol-style set to native
File size: 6.5 KB
Line 
1/* tolua
2** Support code for Lua bindings.
3** Written by Waldemar Celes
4** TeCGraf/PUC-Rio
5** Apr 2003
6** $Id: $
7*/
8
9/* This code is free software; you can redistribute it and/or modify it.
10** The software provided hereunder is on an "as is" basis, and
11** the author has no obligation to provide maintenance, support, updates,
12** enhancements, or modifications.
13*/
14
15
16#ifndef TOLUA_H
17#define TOLUA_H
18
19#ifndef TOLUA_API
20#define TOLUA_API extern
21#endif
22
23#define TOLUA_VERSION "tolua++-1.0.92"
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29#define tolua_pushcppstring(x,y)        tolua_pushstring(x,y.c_str())
30#define tolua_iscppstring       tolua_isstring
31
32#define tolua_iscppstringarray tolua_isstringarray
33#define tolua_pushfieldcppstring(L,lo,idx,s) tolua_pushfieldstring(L, lo, idx, s.c_str())
34
35#define TEMPLATE_BIND(p)
36#define TOLUA_TEMPLATE_BIND(p)
37#define TOLUA_PROTECTED_DESTRUCTOR
38#define TOLUA_PROPERTY_TYPE(p)
39
40typedef int lua_Object;
41
42#include "lua.h"
43#include "lauxlib.h"
44
45struct tolua_Error
46{
47        int index;
48        int array;
49        const char* type;
50};
51typedef struct tolua_Error tolua_Error;
52
53#define TOLUA_NOPEER    LUA_REGISTRYINDEX /* for lua 5.1 */
54
55TOLUA_API const char* tolua_typename (lua_State* L, int lo);
56TOLUA_API void tolua_error (lua_State* L, char* msg, tolua_Error* err);
57TOLUA_API int tolua_isnoobj (lua_State* L, int lo, tolua_Error* err);
58TOLUA_API int tolua_isvalue (lua_State* L, int lo, int def, tolua_Error* err);
59TOLUA_API int tolua_isboolean (lua_State* L, int lo, int def, tolua_Error* err);
60TOLUA_API int tolua_isnumber (lua_State* L, int lo, int def, tolua_Error* err);
61TOLUA_API int tolua_isstring (lua_State* L, int lo, int def, tolua_Error* err);
62TOLUA_API int tolua_istable (lua_State* L, int lo, int def, tolua_Error* err);
63TOLUA_API int tolua_isusertable (lua_State* L, int lo, const char* type, int def, tolua_Error* err);
64TOLUA_API int tolua_isuserdata (lua_State* L, int lo, int def, tolua_Error* err);
65TOLUA_API int tolua_isusertype (lua_State* L, int lo, const char* type, int def, tolua_Error* err);
66TOLUA_API int tolua_isvaluearray
67 (lua_State* L, int lo, int dim, int def, tolua_Error* err);
68TOLUA_API int tolua_isbooleanarray
69 (lua_State* L, int lo, int dim, int def, tolua_Error* err);
70TOLUA_API int tolua_isnumberarray
71 (lua_State* L, int lo, int dim, int def, tolua_Error* err);
72TOLUA_API int tolua_isstringarray
73 (lua_State* L, int lo, int dim, int def, tolua_Error* err);
74TOLUA_API int tolua_istablearray
75 (lua_State* L, int lo, int dim, int def, tolua_Error* err);
76TOLUA_API int tolua_isuserdataarray
77 (lua_State* L, int lo, int dim, int def, tolua_Error* err);
78TOLUA_API int tolua_isusertypearray
79 (lua_State* L, int lo, const char* type, int dim, int def, tolua_Error* err);
80
81TOLUA_API void tolua_open (lua_State* L);
82
83TOLUA_API void* tolua_copy (lua_State* L, void* value, unsigned int size);
84TOLUA_API int tolua_register_gc (lua_State* L, int lo);
85TOLUA_API int tolua_default_collect (lua_State* tolua_S);
86
87TOLUA_API void tolua_usertype (lua_State* L, char* type);
88TOLUA_API void tolua_beginmodule (lua_State* L, char* name);
89TOLUA_API void tolua_endmodule (lua_State* L);
90TOLUA_API void tolua_module (lua_State* L, char* name, int hasvar);
91TOLUA_API void tolua_class (lua_State* L, char* name, char* base);
92TOLUA_API void tolua_cclass (lua_State* L, char* lname, char* name, char* base, lua_CFunction col);
93TOLUA_API void tolua_function (lua_State* L, char* name, lua_CFunction func);
94TOLUA_API void tolua_constant (lua_State* L, char* name, double value);
95TOLUA_API void tolua_variable (lua_State* L, char* name, lua_CFunction get, lua_CFunction set);
96TOLUA_API void tolua_array (lua_State* L,char* name, lua_CFunction get, lua_CFunction set);
97
98/* TOLUA_API void tolua_set_call_event(lua_State* L, lua_CFunction func, char* type); */
99/* TOLUA_API void tolua_addbase(lua_State* L, char* name, char* base); */
100
101TOLUA_API void tolua_pushvalue (lua_State* L, int lo);
102TOLUA_API void tolua_pushboolean (lua_State* L, int value);
103TOLUA_API void tolua_pushnumber (lua_State* L, double value);
104TOLUA_API void tolua_pushstring (lua_State* L, const char* value);
105TOLUA_API void tolua_pushuserdata (lua_State* L, void* value);
106TOLUA_API void tolua_pushusertype (lua_State* L, void* value, const char* type);
107TOLUA_API void tolua_pushusertype_and_takeownership(lua_State* L, void* value, const char* type);
108TOLUA_API void tolua_pushfieldvalue (lua_State* L, int lo, int index, int v);
109TOLUA_API void tolua_pushfieldboolean (lua_State* L, int lo, int index, int v);
110TOLUA_API void tolua_pushfieldnumber (lua_State* L, int lo, int index, double v);
111TOLUA_API void tolua_pushfieldstring (lua_State* L, int lo, int index, const char* v);
112TOLUA_API void tolua_pushfielduserdata (lua_State* L, int lo, int index, void* v);
113TOLUA_API void tolua_pushfieldusertype (lua_State* L, int lo, int index, void* v, const char* type);
114TOLUA_API void tolua_pushfieldusertype_and_takeownership (lua_State* L, int lo, int index, void* v, const char* type);
115
116TOLUA_API double tolua_tonumber (lua_State* L, int narg, double def);
117TOLUA_API const char* tolua_tostring (lua_State* L, int narg, const char* def);
118TOLUA_API void* tolua_touserdata (lua_State* L, int narg, void* def);
119TOLUA_API void* tolua_tousertype (lua_State* L, int narg, void* def);
120TOLUA_API int tolua_tovalue (lua_State* L, int narg, int def);
121TOLUA_API int tolua_toboolean (lua_State* L, int narg, int def);
122TOLUA_API double tolua_tofieldnumber (lua_State* L, int lo, int index, double def);
123TOLUA_API const char* tolua_tofieldstring (lua_State* L, int lo, int index, const char* def);
124TOLUA_API void* tolua_tofielduserdata (lua_State* L, int lo, int index, void* def);
125TOLUA_API void* tolua_tofieldusertype (lua_State* L, int lo, int index, void* def);
126TOLUA_API int tolua_tofieldvalue (lua_State* L, int lo, int index, int def);
127TOLUA_API int tolua_getfieldboolean (lua_State* L, int lo, int index, int def);
128
129TOLUA_API void tolua_dobuffer(lua_State* L, char* B, unsigned int size, const char* name);
130
131TOLUA_API int class_gc_event (lua_State* L);
132
133#ifdef __cplusplus
134static inline const char* tolua_tocppstring (lua_State* L, int narg, const char* def) {
135
136        const char* s = tolua_tostring(L, narg, def);
137        return s?s:"";
138};
139
140static inline const char* tolua_tofieldcppstring (lua_State* L, int lo, int index, const char* def) {
141
142        const char* s = tolua_tofieldstring(L, lo, index, def);
143        return s?s:"";
144};
145
146#else
147#define tolua_tocppstring tolua_tostring
148#define tolua_tofieldcppstring tolua_tofieldstring
149#endif
150
151TOLUA_API int tolua_fast_isa(lua_State *L, int mt_indexa, int mt_indexb, int super_index);
152
153#ifdef __cplusplus
154}
155#endif
156
157#endif
Note: See TracBrowser for help on using the repository browser.