93 lines
2.2 KiB
C
93 lines
2.2 KiB
C
#ifndef RPMLUA_H
|
|
#define RPMLUA_H
|
|
|
|
typedef enum rpmluavType_e {
|
|
RPMLUAV_NIL = 0,
|
|
RPMLUAV_STRING = 1,
|
|
RPMLUAV_NUMBER = 2
|
|
} rpmluavType;
|
|
|
|
#if defined(_RPMLUA_INTERNAL)
|
|
|
|
#include <stdarg.h>
|
|
#include <lua.h>
|
|
|
|
typedef struct rpmluapb_s * rpmluapb;
|
|
|
|
struct rpmlua_s {
|
|
lua_State *L;
|
|
size_t pushsize;
|
|
rpmluapb printbuf;
|
|
};
|
|
|
|
struct rpmluav_s {
|
|
rpmluavType keyType;
|
|
rpmluavType valueType;
|
|
union {
|
|
const char *str;
|
|
const void *ptr;
|
|
double num;
|
|
} key;
|
|
union {
|
|
const char *str;
|
|
const void *ptr;
|
|
double num;
|
|
} value;
|
|
int listmode;
|
|
};
|
|
|
|
#endif /* _RPMLUA_INTERNAL */
|
|
|
|
typedef struct rpmlua_s * rpmlua;
|
|
typedef struct rpmluav_s * rpmluav;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
rpmlua rpmluaNew(void);
|
|
rpmlua rpmluaFree(rpmlua lua);
|
|
rpmlua rpmluaGetGlobalState(void);
|
|
|
|
int rpmluaCheckScript(rpmlua lua, const char *script,
|
|
const char *name);
|
|
int rpmluaRunScript(rpmlua lua, const char *script,
|
|
const char *name);
|
|
int rpmluaRunScriptFile(rpmlua lua, const char *filename);
|
|
void rpmluaInteractive(rpmlua lua);
|
|
|
|
void *rpmluaGetData(rpmlua lua, const char *key);
|
|
void rpmluaSetData(rpmlua lua, const char *key, const void *data);
|
|
|
|
char *rpmluaPopPrintBuffer(rpmlua lua);
|
|
void rpmluaPushPrintBuffer(rpmlua lua);
|
|
|
|
void rpmluaGetVar(rpmlua lua, rpmluav var);
|
|
void rpmluaSetVar(rpmlua lua, rpmluav var);
|
|
void rpmluaDelVar(rpmlua lua, const char *key, ...);
|
|
int rpmluaVarExists(rpmlua lua, const char *key, ...);
|
|
void rpmluaPushTable(rpmlua lua, const char *key, ...);
|
|
void rpmluaPop(rpmlua lua);
|
|
|
|
rpmluav rpmluavNew(void);
|
|
rpmluav rpmluavFree(rpmluav var);
|
|
void rpmluavSetListMode(rpmluav var, int flag);
|
|
void rpmluavSetKey(rpmluav var, rpmluavType type, const void *value);
|
|
void rpmluavSetValue(rpmluav var, rpmluavType type, const void *value);
|
|
void rpmluavGetKey(rpmluav var, rpmluavType *type, void **value);
|
|
void rpmluavGetValue(rpmluav var, rpmluavType *type, void **value);
|
|
|
|
/* Optional helpers for numbers. */
|
|
void rpmluavSetKeyNum(rpmluav var, double value);
|
|
void rpmluavSetValueNum(rpmluav var, double value);
|
|
double rpmluavGetKeyNum(rpmluav var);
|
|
double rpmluavGetValueNum(rpmluav var);
|
|
int rpmluavKeyIsNum(rpmluav var);
|
|
int rpmluavValueIsNum(rpmluav var);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* RPMLUA_H */
|