00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef LUA_COCOA_H
00027 #define LUA_COCOA_H
00028
00029
00030 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
00031
00033
00034
00035
00036
00037
00038
00039 #if defined(__cplusplus)
00040 #define LUACOCOA_EXTERN extern "C"
00041 #else
00042 #define LUACOCOA_EXTERN extern
00043 #endif
00044
00045 #if TARGET_OS_WIN32
00046
00047 #if defined(NSBUILDINGLUACOCOA)
00048 #define LUACOCOA_EXPORT __declspec(dllexport)
00049 #else
00050 #define LUACOCOA_EXPORT __declspec(dllimport)
00051 #endif
00052
00053 #define LUACOCOA_IMPORT __declspec(dllimport)
00054
00055 #else
00056 #if defined(__GNUC__) && __GNUC__ >= 4 && defined(NSBUILDINGLUACOCOA)
00057 #define LUACOCOA_EXPORT __attribute__ ((visibility("default")))
00058 #else
00059 #define LUACOCOA_EXPORT
00060 #endif
00061
00062 #define LUACOCOA_IMPORT
00063 #endif
00064
00066 #endif
00067
00068
00069
00070 #include <stdarg.h>
00071 #include <stdbool.h>
00072
00073 #ifdef LUACOCOA_DONT_USE_BUNDLED_LUA_HEADERS
00074 #include "lua.h"
00075 #include "lualib.h"
00076 #include "lauxlib.h"
00077 #else
00078
00079
00080
00081 #ifdef __cplusplus
00082 extern "C" {
00083 #endif
00084 #include <LuaCocoa/lua.h>
00085 #include <LuaCocoa/lualib.h>
00086 #include <LuaCocoa/lauxlib.h>
00087 #ifdef __cplusplus
00088 }
00089 #endif
00090 #endif
00091
00092 #ifdef __OBJC__
00093 #import <Foundation/Foundation.h>
00094
00095
00096
00097 struct lua_State;
00098
00099
00100
00101
00102
00103
00104
00105
00106
00114 LUACOCOA_EXPORT @interface LuaCocoa : NSObject
00115 {
00116 @private
00117 struct lua_State* luaState;
00118 bool ownsLuaState;
00119 NSMutableDictionary* frameworksLoaded;
00120 bool skipDLopen;
00121 bool disableImportFromLua;
00122
00123
00124
00125
00126
00127 }
00133 @property(assign, readonly) struct lua_State* luaState;
00134 @property(assign) bool skipDLopen;
00135 @property(assign) bool disableImportFromLua;
00136
00137
00138
00139
00140
00146 - (id) init;
00147
00155 - (id) initWithLuaState:(struct lua_State*)lua_state assumeOwnership:(bool)should_assume_ownership;
00156
00157
00158 - (bool) loadFrameworkWithBaseName:(NSString*)base_name hintPath:(NSString*)hint_path searchHintPathFirst:(bool)search_hint_path_first skipDLopen:(bool)skip_dl_open;
00159
00160
00161 - (bool) isFrameworkLoaded:(NSString*)base_name;
00162
00175 - (void) collectExhaustivelyWaitUntilDone:(bool)should_wait_until_done;
00176
00185 + (void) collectExhaustivelyWaitUntilDone:(bool)should_wait_until_done;
00186
00221 - (NSString*) pcallLuaFunction:(const char*)lua_function_name withSignature:(const char*)parameter_signature, ...;
00257 - (NSString*) pcallLuaFunction:(const char*)lua_function_name errorFunction:(lua_CFunction)error_function withSignature:(const char*)parameter_signature, ...;
00258
00259
00260
00261 @end
00262
00263
00264
00265
00273 LUACOCOA_EXTERN LUACOCOA_EXPORT bool LuaCocoa_IsInstance(struct lua_State* lua_state, int stack_index);
00281 LUACOCOA_EXTERN LUACOCOA_EXPORT id LuaCocoa_CheckInstance(struct lua_State* lua_state, int stack_index);
00289 LUACOCOA_EXTERN LUACOCOA_EXPORT id LuaCocoa_ToInstance(struct lua_State* lua_state, int stack_index);
00296 LUACOCOA_EXTERN LUACOCOA_EXPORT void LuaCocoa_PushInstance(struct lua_State* lua_state, id the_object);
00297
00305 LUACOCOA_EXTERN LUACOCOA_EXPORT bool LuaCocoa_IsClass(struct lua_State* lua_state, int stack_index);
00313 LUACOCOA_EXTERN LUACOCOA_EXPORT Class LuaCocoa_CheckClass(struct lua_State* lua_state, int stack_index);
00321 LUACOCOA_EXTERN LUACOCOA_EXPORT Class LuaCocoa_ToClass(struct lua_State* lua_state, int stack_index);
00328 LUACOCOA_EXTERN LUACOCOA_EXPORT void LuaCocoa_PushClass(struct lua_State* lua_state, Class the_class);
00329
00337 LUACOCOA_EXTERN LUACOCOA_EXPORT bool LuaCocoa_IsNSNumber(struct lua_State* lua_state, int stack_index);
00346 LUACOCOA_EXTERN LUACOCOA_EXPORT NSNumber* LuaCocoa_CheckNSNumber(struct lua_State* lua_state, int stack_index);
00356 LUACOCOA_EXTERN LUACOCOA_EXPORT NSNumber* LuaCocoa_ToNSNumber(struct lua_State* lua_state, int stack_index);
00364 LUACOCOA_EXTERN LUACOCOA_EXPORT void LuaCocoa_PushUnboxedNSNumber(struct lua_State* lua_state, NSNumber* the_number);
00365
00373 LUACOCOA_EXTERN LUACOCOA_EXPORT bool LuaCocoa_IsNSNull(struct lua_State* lua_state, int stack_index);
00381 LUACOCOA_EXTERN LUACOCOA_EXPORT NSNull* LuaCocoa_CheckNSNull(struct lua_State* lua_state, int stack_index);
00389 LUACOCOA_EXTERN LUACOCOA_EXPORT NSNull* LuaCocoa_ToNSNull(struct lua_State* lua_state, int stack_index);
00390
00398 LUACOCOA_EXTERN LUACOCOA_EXPORT bool LuaCocoa_IsNSString(struct lua_State* lua_state, int stack_index);
00407 LUACOCOA_EXTERN LUACOCOA_EXPORT NSString* LuaCocoa_CheckNSString(struct lua_State* lua_state, int stack_index);
00417 LUACOCOA_EXTERN LUACOCOA_EXPORT NSString* LuaCocoa_ToNSString(struct lua_State* lua_state, int stack_index);
00418
00425 LUACOCOA_EXTERN LUACOCOA_EXPORT void LuaCocoa_PushUnboxedNSString(struct lua_State* lua_state, NSString* the_string);
00437 LUACOCOA_EXTERN LUACOCOA_EXPORT __strong const char* LuaCocoa_ToString(struct lua_State* lua_state, int stack_index);
00438
00449 LUACOCOA_EXTERN LUACOCOA_EXPORT bool LuaCocoa_IsNSArray(struct lua_State* lua_state, int stack_index);
00457 LUACOCOA_EXTERN LUACOCOA_EXPORT void LuaCocoa_PushUnboxedNSArray(struct lua_State* lua_state, NSArray* the_array);
00458
00459
00470 LUACOCOA_EXTERN LUACOCOA_EXPORT bool LuaCocoa_IsNSDictionary(struct lua_State* lua_state, int stack_index);
00482 LUACOCOA_EXTERN LUACOCOA_EXPORT void LuaCocoa_PushUnboxedNSDictionary(struct lua_State* lua_state, NSDictionary* the_dictionary);
00483
00495 LUACOCOA_EXTERN LUACOCOA_EXPORT bool LuaCocoa_IsPropertyList(struct lua_State* lua_state, int stack_index);
00508 LUACOCOA_EXTERN LUACOCOA_EXPORT id LuaCocoa_ToPropertyList(struct lua_State* lua_state, int stack_index);
00509
00520 LUACOCOA_EXTERN LUACOCOA_EXPORT void LuaCocoa_PushUnboxedPropertyList(struct lua_State* lua_state, id the_object);
00521
00522
00523
00524
00533 LUACOCOA_EXTERN LUACOCOA_EXPORT bool LuaCocoa_IsSelector(struct lua_State* lua_state, int stack_index);
00542 LUACOCOA_EXTERN LUACOCOA_EXPORT SEL LuaCocoa_CheckSelector(struct lua_State* lua_state, int stack_index);
00551 LUACOCOA_EXTERN LUACOCOA_EXPORT SEL LuaCocoa_ToSelector(struct lua_State* lua_state, int stack_index);
00558 LUACOCOA_EXTERN LUACOCOA_EXPORT void LuaCocoa_PushSelector(struct lua_State* lua_state, SEL the_selector);
00559
00574 LUACOCOA_EXTERN LUACOCOA_EXPORT NSString* LuaCocoa_GetInfoOnFunction(lua_State* lua_state, const char* function_name, int* line_defined, int* last_line_defined);
00575
00584 LUACOCOA_EXTERN LUACOCOA_EXPORT NSString* LuaCocoa_ParseForErrorFilenameAndLineNumber(NSString* the_string, int* line_number);
00585
00586
00623 LUACOCOA_EXTERN LUACOCOA_EXPORT NSString* LuaCocoa_PcallLuaFunction(lua_State* lua_state, lua_CFunction lua_error_function, const char* lua_function_name, const char* parameter_signature, ...);
00658 LUACOCOA_EXTERN LUACOCOA_EXPORT NSString* LuaCocoa_PcallLuaFunctionv(lua_State* lua_state, lua_CFunction lua_error_function, const char* lua_function_name, const char* parameter_signature, va_list vl);
00659
00660
00661 #endif
00662
00671 LUACOCOA_EXTERN LUACOCOA_EXPORT void LuaCocoa_PrependToLuaSearchPath(struct lua_State* lua_state, const char* search_path);
00672
00681 LUACOCOA_EXTERN LUACOCOA_EXPORT void LuaCocoa_AppendToLuaSearchPath(struct lua_State* lua_state, const char* search_path);
00682
00691 LUACOCOA_EXTERN LUACOCOA_EXPORT void LuaCocoa_PrependToCSearchPath(struct lua_State* lua_state, const char* search_path);
00692
00701 LUACOCOA_EXTERN LUACOCOA_EXPORT void LuaCocoa_AppendToCSearchPath(struct lua_State* lua_state, const char* search_path);
00702
00703
00704
00705
00713 LUACOCOA_EXTERN LUACOCOA_EXPORT bool LuaCocoa_IsStruct(struct lua_State* lua_state, int stack_index);
00722 LUACOCOA_EXTERN LUACOCOA_EXPORT bool LuaCocoa_IsStructWithName(struct lua_State* lua_state, int stack_index, const char* key_name);
00730 LUACOCOA_EXTERN LUACOCOA_EXPORT const char* LuaCocoa_GetStructName(struct lua_State* lua_state, int stack_index);
00739 LUACOCOA_EXTERN LUACOCOA_EXPORT void* LuaCocoa_CheckStruct(struct lua_State* lua_state, int stack_index, const char* key_name);
00749 LUACOCOA_EXTERN LUACOCOA_EXPORT bool LuaCocoa_PushStruct(struct lua_State* lua_state, void* the_struct, const char* key_name);
00750
00751 #endif