22#define SENDER_CAPI_H
33
44#define SENDER_CAPI_ID_STRING "_capi_sender"
5- #define SENDER_CAPI_VERSION_MAJOR 0
5+ #define SENDER_CAPI_VERSION_MAJOR 1
66#define SENDER_CAPI_VERSION_MINOR 0
7- #define SENDER_CAPI_VERSION_PATCH 1
8-
9- typedef struct sender_object sender_object ;
10- typedef struct sender_reader sender_reader ;
11- typedef struct sender_capi sender_capi ;
12- typedef enum sender_capi_value_type sender_capi_value_type ;
13- typedef struct sender_capi_value sender_capi_value ;
7+ #define SENDER_CAPI_VERSION_PATCH 0
148
9+ #ifndef SENDER_CAPI_HAVE_LONG_LONG
10+ # include <limits.h>
11+ # if defined(LLONG_MAX )
12+ # define SENDER_CAPI_HAVE_LONG_LONG 1
13+ # else
14+ # define SENDER_CAPI_HAVE_LONG_LONG 0
15+ # endif
16+ #endif
1517
1618#ifndef SENDER_CAPI_IMPLEMENT_SET_CAPI
1719# define SENDER_CAPI_IMPLEMENT_SET_CAPI 0
@@ -21,6 +23,13 @@ typedef struct sender_capi_value sender_capi_value;
2123# define SENDER_CAPI_IMPLEMENT_GET_CAPI 0
2224#endif
2325
26+ typedef struct sender_object sender_object ;
27+ typedef struct sender_reader sender_reader ;
28+ typedef struct sender_capi sender_capi ;
29+ typedef enum sender_capi_value_type sender_capi_value_type ;
30+ typedef struct sender_capi_value sender_capi_value ;
31+ typedef enum sender_array_type sender_array_type ;
32+
2433enum sender_capi_value_type
2534{
2635 SENDER_CAPI_TYPE_NONE = 0 ,
@@ -30,7 +39,31 @@ enum sender_capi_value_type
3039 SENDER_CAPI_TYPE_NUMBER ,
3140 SENDER_CAPI_TYPE_LIGHTUSERDATA ,
3241 SENDER_CAPI_TYPE_CFUNCTION ,
33- SENDER_CAPI_TYPE_STRING
42+ SENDER_CAPI_TYPE_STRING ,
43+ SENDER_CAPI_TYPE_ARRAY
44+ };
45+
46+ enum sender_array_type
47+ {
48+ SENDER_UCHAR = 1 ,
49+ SENDER_SCHAR = 2 ,
50+
51+ SENDER_SHORT = 3 ,
52+ SENDER_USHORT = 4 ,
53+
54+ SENDER_INT = 5 ,
55+ SENDER_UINT = 6 ,
56+
57+ SENDER_LONG = 7 ,
58+ SENDER_ULONG = 8 ,
59+
60+ SENDER_FLOAT = 9 ,
61+ SENDER_DOUBLE = 10 ,
62+
63+ #if SENDER_CAPI_HAVE_LONG_LONG
64+ SENDER_LLONG = 11 ,
65+ SENDER_ULLONG = 12 ,
66+ #endif
3467};
3568
3669struct sender_capi_value
@@ -43,9 +76,15 @@ struct sender_capi_value
4376 void * ptrVal ;
4477 lua_CFunction funcVal ;
4578 struct {
46- const char * ptr ;
47- size_t len ;
48- } strVal ;
79+ const char * ptr ;
80+ size_t len ;
81+ } strVal ;
82+ struct {
83+ sender_array_type type ;
84+ size_t elementSize ;
85+ size_t elementCount ;
86+ const void * data ;
87+ } arrayVal ;
4988 };
5089};
5190
0 commit comments