ZClk  0.1.0-alpha.3
Library to build cli programs
zclk.h
Go to the documentation of this file.
1 // Copyright (c) 2020 Abhishek Mishra
2 //
3 // This software is released under the MIT License.
4 // https://opensource.org/licenses/MIT
5 
11 #ifndef __ZCLK_H__
12 #define __ZCLK_H__
13 
14 #include "zclk_common.h"
15 
16 #include <coll_arraylist.h>
17 #include <lua.h>
18 #include <lauxlib.h>
19 #include "zclk_table.h"
20 #include "zclk_dict.h"
21 #include "zclk_progress.h"
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
28 #define ZCLK_OPTION_HELP_LONG "help"
30 #define ZCLK_OPTION_HELP_SHORT "h"
32 #define ZCLK_OPTION_HELP_DESC "Print help for command."
33 
38 typedef enum
39 {
40  ZCLK_RES_IS_RUNNING = -1,
41  ZCLK_RES_SUCCESS = 0,
42  ZCLK_RES_ERR_UNKNOWN = 1,
43  ZCLK_RES_ERR_ALLOC_FAILED = 2,
44  ZCLK_RES_ERR_COMMAND_NOT_FOUND = 3,
45  ZCLK_RES_ERR_OPTION_NOT_FOUND = 4,
46  ZCLK_RES_ERR_ARG_NOT_FOUND = 5,
47  ZCLK_RES_ERR_EXTRA_ARGS_FOUND = 6
48 } zclk_res;
49 
54 typedef enum
55 {
56  ZCLK_TYPE_BOOLEAN = 0,
57  ZCLK_TYPE_INT = 1,
58  ZCLK_TYPE_DOUBLE = 2,
59  ZCLK_TYPE_STRING = 3,
60  ZCLK_TYPE_FLAG = 4
61 } zclk_type;
62 
63 #define ZCLK_BOOL_TRUE 1
64 #define ZCLK_BOOL_FALSE 0
65 #define ZCLK_FLAG_ON 1
66 #define ZCLK_FLAG_OFF 0
67 
72 typedef enum
73 {
74  ZCLK_RESULT_STRING = 0,
75  ZCLK_RESULT_TABLE = 1,
76  ZCLK_RESULT_DICT = 2,
77  ZCLK_RESULT_PROGRESS = 3
79 
84 typedef struct zclk_val_t
85 {
87  union {
88  int bool_value;
89  int int_value;
90  double dbl_value;
91  char* str_value;
92  } data;
94 
95 MODULE_API int zclk_val_is_type(zclk_val *val, zclk_type type);
96 
103 #define zclk_val_is_bool(val) zclk_val_is_type(val, ZCLK_TYPE_BOOLEAN)
104 
111 #define zclk_val_is_int(val) zclk_val_is_type(val, ZCLK_TYPE_INT)
112 
119 #define zclk_val_is_double(val) zclk_val_is_type(val, ZCLK_TYPE_DOUBLE)
120 
127 #define zclk_val_is_string(val) zclk_val_is_type(val, ZCLK_TYPE_STRING)
128 
135 #define zclk_val_is_flag(val) zclk_val_is_type(val, ZCLK_TYPE_FLAG)
136 
143 MODULE_API int zclk_val_get_bool(zclk_val *val);
144 
151 MODULE_API int zclk_val_get_int(zclk_val *val);
152 
159 MODULE_API double zclk_val_get_double(zclk_val *val);
160 
167 MODULE_API const char* zclk_val_get_string(zclk_val *val);
168 
175 MODULE_API int zclk_val_get_flag(zclk_val *val);
176 
183 MODULE_API void zclk_val_set_bool(zclk_val *val, int bval);
184 
191 MODULE_API void zclk_val_set_int(zclk_val *val, int ival);
192 
199 MODULE_API void zclk_val_set_dobule(zclk_val *val, double dval);
200 
207 MODULE_API void zclk_val_set_string(zclk_val *val, const char* sval);
208 
215 MODULE_API void zclk_val_set_flag(zclk_val *val, int fval);
216 
224 MODULE_API int zclk_val_to_lua(lua_State *L, zclk_val* val);
225 
232 MODULE_API zclk_val* new_zclk_val_bool(int bool_val);
233 
240 MODULE_API zclk_val* new_zclk_val_int(int int_val);
241 
248 MODULE_API zclk_val* new_zclk_val_double(double double_val);
249 
256 MODULE_API zclk_val* new_zclk_val_string(const char* string_val);
257 
264 MODULE_API zclk_val* new_zclk_val_flag(int flag_val);
265 
271 #define zclk_flag(v) new_zclk_val_flag(v)
272 
278 #define zclk_boolean(v) new_zclk_val_bool(v)
279 
285 #define zclk_int(v) new_zclk_val_int(v)
286 
292 #define zclk_double(v) new_zclk_val_double(v)
293 
299 #define zclk_string(v) new_zclk_val_string(v)
300 
304 typedef struct zclk_option_t
305 {
306  char* name;
307  char* short_name;
310  char* description;
312 
320 MODULE_API int zclk_option_to_lua(lua_State *L, zclk_option* option);
321 
329 MODULE_API void arraylist_zclk_option_to_lua(lua_State *L, int index, void *data);
330 
334 typedef struct zclk_argument_t
335 {
336  char* name;
339  char* description;
340  int optional;
342 
350 MODULE_API int zclk_argument_to_lua(lua_State *L, zclk_argument* arg);
351 
359 MODULE_API void arraylist_zclk_argument_to_lua(lua_State *L, int index, void *data);
360 
367 MODULE_API void zclk_fill_options_in_list(arraylist* optlist, zclk_option* options[]);
368 
373  zclk_result_type result_type, void* result);
374 
375 // declration to assist in defining command fn
376 struct zclk_command_t;
377 
382  void* handler_args);
383 
387 typedef struct zclk_command_t
388 {
389  char* name;
390  char* short_name;
391  char* description;
392  arraylist* sub_commands;
393  arraylist* options;
394  arraylist* args;
403 
411 MODULE_API zclk_res make_zclk_val(zclk_val** val, zclk_type type);
412 
416 MODULE_API void free_zclk_val(zclk_val* val);
417 
421 MODULE_API void clear_zclk_val(zclk_val* val);
422 
430 MODULE_API void copy_zclk_val(zclk_val* to, zclk_val* from);
431 
441 MODULE_API zclk_res parse_zclk_val(zclk_val* val, char* input);
442 
454 MODULE_API zclk_res make_option(zclk_option** option, const char* name,
455  const char* short_name, zclk_val* val, zclk_val* default_val,
456  const char* description);
457 
473 MODULE_API zclk_option* new_zclk_option(const char* name,
474  const char* short_name, zclk_val* val, zclk_val* default_val,
475  const char* desc);
476 
477 MODULE_API zclk_option *new_zclk_option_bool(const char *name,
478  const char *short_name, int default_val, const char *desc);
479 MODULE_API zclk_option *new_zclk_option_int(const char *name,
480  const char *short_name, int default_val, const char *desc);
481 MODULE_API zclk_option *new_zclk_option_double(const char *name,
482  const char *short_name, double default_val, const char *desc);
483 MODULE_API zclk_option *new_zclk_option_string(const char *name,
484  const char *short_name, const char* default_val,
485  const char *desc);
486 MODULE_API zclk_option *new_zclk_option_flag(const char *name,
487  const char *short_name, int default_val, const char *desc);
488 
489 MODULE_API const char *zclk_option_get_name(zclk_option *opt);
490 MODULE_API const char *zclk_option_get_short_name(zclk_option *opt);
491 MODULE_API const char *zclk_option_get_desc(zclk_option *opt);
492 
493 MODULE_API int zclk_option_get_val_bool(zclk_option *opt);
494 MODULE_API int zclk_option_get_val_int(zclk_option *opt);
495 MODULE_API double zclk_option_get_val_double(zclk_option *opt);
496 MODULE_API const char* zclk_option_get_val_string(zclk_option *opt);
497 MODULE_API int zclk_option_get_val_flag(zclk_option *opt);
498 
499 MODULE_API int zclk_option_get_default_val_bool(zclk_option *opt);
500 MODULE_API int zclk_option_get_default_val_int(zclk_option *opt);
501 MODULE_API double zclk_option_get_default_val_double(zclk_option *opt);
502 MODULE_API const char* zclk_option_get_default_val_string(zclk_option *opt);
503 MODULE_API int zclk_option_get_default_val_flag(zclk_option *opt);
504 
510 MODULE_API void free_option(zclk_option* option);
511 
519 MODULE_API zclk_option* get_option_by_name(arraylist* options,
520  const char* name);
521 
537 MODULE_API zclk_res make_argument(zclk_argument** arg, const char* name,
538  zclk_val* val, zclk_val* default_val, const char* desc);
539 
555 MODULE_API zclk_argument* new_zclk_argument(const char* name, zclk_val* val,
556  zclk_val* default_val, const char* desc, int nargs);
557 
558 MODULE_API zclk_argument *new_zclk_argument_bool(const char *name,
559  int default_val, const char *desc, int nargs);
560 MODULE_API zclk_argument *new_zclk_argument_int(const char *name,
561  int default_val, const char *desc, int nargs);
562 MODULE_API zclk_argument *new_zclk_argument_double(const char *name,
563  double default_val, const char *desc, int nargs);
564 MODULE_API zclk_argument *new_zclk_argument_string(const char *name,
565  const char* default_val, const char *desc, int nargs);
566 MODULE_API zclk_argument *new_zclk_argument_flag(const char *name,
567  int default_val, const char *desc, int nargs);
568 
569 MODULE_API const char *zclk_argument_get_name(zclk_argument *opt);
570 MODULE_API const char *zclk_argument_get_desc(zclk_argument *opt);
571 
572 MODULE_API int zclk_argument_get_val_bool(zclk_argument *opt);
573 MODULE_API int zclk_argument_get_val_int(zclk_argument *opt);
574 MODULE_API double zclk_argument_get_val_double(zclk_argument *opt);
575 MODULE_API const char* zclk_argument_get_val_string(zclk_argument *opt);
576 MODULE_API int zclk_argument_get_val_flag(zclk_argument *opt);
577 
578 MODULE_API int zclk_argument_get_default_val_bool(zclk_argument *opt);
579 MODULE_API int zclk_argument_get_default_val_int(zclk_argument *opt);
580 MODULE_API double zclk_argument_get_default_val_double(zclk_argument *opt);
581 MODULE_API const char* zclk_argument_get_default_val_string(zclk_argument *opt);
582 MODULE_API int zclk_argument_get_default_val_flag(zclk_argument *opt);
583 
587 MODULE_API void free_argument(zclk_argument* arg);
588 
602 MODULE_API zclk_res make_command(zclk_command** command, const char* name,
603  const char* short_name, const char* description, zclk_command_fn handler);
604 
615 MODULE_API zclk_command* new_zclk_command(
616  const char* name,
617  const char* short_name,
618  const char* description,
619  zclk_command_fn handler
620  );
621 
630  zclk_command *cmd,
631  zclk_command *subcommand
632  );
633 
642  zclk_command *cmd,
643  zclk_option* option
644  );
645 
654  zclk_command *cmd,
655  zclk_argument* arg
656  );
657 
666 MODULE_API void zclk_command_bool_option(zclk_command *cmd, const char *name,
667  const char* short_name, const char *desc);
668 
678 MODULE_API void zclk_command_int_option(zclk_command *cmd, const char *name,
679  const char* short_name, int default_val, const char *desc);
680 
690 MODULE_API void zclk_command_double_option(zclk_command *cmd, const char *name,
691  const char* short_name, double default_val, const char *desc);
692 
702 MODULE_API void zclk_command_string_option(zclk_command *cmd, const char *name,
703  const char* short_name, const char* default_val,
704  const char *desc);
705 
714 MODULE_API void zclk_command_flag_option(zclk_command *cmd, const char *name,
715  const char* short_name, const char *desc);
716 
726 MODULE_API void zclk_command_bool_argument(zclk_command *cmd, const char *name,
727  int default_val, const char *desc, int nargs);
728 
738 MODULE_API void zclk_command_int_argument(zclk_command *cmd, const char *name,
739  int default_val, const char *desc, int nargs);
740 
750 MODULE_API void zclk_command_double_argument(zclk_command *cmd, const char *name,
751  double default_val, const char *desc, int nargs);
752 
762 MODULE_API void zclk_command_string_argument(zclk_command *cmd, const char *name,
763  const char* default_val, const char *desc, int nargs);
764 
774 MODULE_API void zclk_command_flag_argument(zclk_command *cmd, const char *name,
775  int default_val, const char *desc, int nargs);
776 
785  const char *name);
786 
795  const char *name);
796 
805 #define zclk_command_option_foreach(cmd, opt) \
806  zclk_option *opt = NULL; \
807  size_t len##opt = arraylist_length(cmd->options); \
808  for (size_t i = 0; ((i < len##opt)? \
809  (opt = arraylist_get(cmd->options, i)) \
810  : 0); \
811  i++)
812 
821 #define zclk_command_argument_foreach(cmd, arg) \
822  zclk_argument *arg = NULL; \
823  size_t len##arg = arraylist_length(cmd->args); \
824  for (size_t i = 0; ((i < len##arg)? \
825  (arg = arraylist_get(cmd->args, i)) \
826  : 0); \
827  i++)
828 
838 MODULE_API zclk_res zclk_command_exec(
839  zclk_command *cmd,
840  void *exec_args,
841  int argc, char *argv[]);
842 
848 MODULE_API void free_command(zclk_command* command);
849 
855 MODULE_API char* get_help_for_command(arraylist* cmds_to_exec);
856 
868 MODULE_API zclk_res help_cmd_handler(arraylist* commands,
869  void* handler_args, int argc, char** argv,
870  zclk_command_output_handler success_handler,
871  zclk_command_output_handler error_handler);
872 
880 MODULE_API zclk_res get_help_for(char** help_str, arraylist* commands,
881  arraylist* arg_commands);
882 
893 MODULE_API zclk_res exec_command(arraylist* commands, void* handler_args,
894  int argc, char** argv);
895 
901 MODULE_API void print_table_result(void* result);
902 
911 MODULE_API zclk_res print_handler(zclk_res result_flag,
912  zclk_result_type res_type,
913  void* result);
914 
915 #ifdef __cplusplus
916 }
917 #endif
918 
919 #endif /* __ZCLK_H__ */
CLI Argument object.
Definition: zclk.h:335
char * description
textual description
Definition: zclk.h:339
zclk_val * default_val
default value of the argument
Definition: zclk.h:338
char * name
name of the argument
Definition: zclk.h:336
zclk_val * val
value of the argument
Definition: zclk.h:337
int optional
flag indicating if argument is optional
Definition: zclk.h:340
A CLI Command Ojbect.
Definition: zclk.h:388
arraylist * sub_commands
list of subcommands
Definition: zclk.h:392
zclk_command_output_handler error_handler
error handler for the command
Definition: zclk.h:397
arraylist * args
args list
Definition: zclk.h:394
int lua_udata_ref
lua ref for the udata of this object
Definition: zclk.h:401
zclk_command_output_handler success_handler
success handler for the command
Definition: zclk.h:399
char * short_name
short name of the command
Definition: zclk.h:390
arraylist * options
options list
Definition: zclk.h:393
char * name
name of the command
Definition: zclk.h:389
int lua_handler_ref
lua ref for handler
Definition: zclk.h:400
zclk_command_fn handler
command handler function
Definition: zclk.h:395
char * description
textual description
Definition: zclk.h:391
CLI Option Object.
Definition: zclk.h:305
char * name
name of the option
Definition: zclk.h:306
zclk_val * val
value of the option
Definition: zclk.h:308
char * description
textural description of the option
Definition: zclk.h:310
zclk_val * default_val
default value of the option
Definition: zclk.h:309
char * short_name
short_name of the option
Definition: zclk.h:307
This struct holds the value of the argument or option.
Definition: zclk.h:85
char * str_value
string value
Definition: zclk.h:91
int bool_value
boolean value
Definition: zclk.h:88
int int_value
integer value
Definition: zclk.h:89
union zclk_val_t::@0 data
data of the value
zclk_type type
type of value
Definition: zclk.h:86
double dbl_value
double value
Definition: zclk.h:90
MODULE_API void copy_zclk_val(zclk_val *to, zclk_val *from)
Definition: zclk.c:185
MODULE_API void zclk_command_flag_option(zclk_command *cmd, const char *name, const char *short_name, const char *desc)
Create a new flag option and add it to the given command.
Definition: zclk.c:919
MODULE_API char * get_help_for_command(arraylist *cmds_to_exec)
Definition: zclk.c:1118
struct zclk_argument_t zclk_argument
CLI Argument object.
MODULE_API void zclk_command_flag_argument(zclk_command *cmd, const char *name, int default_val, const char *desc, int nargs)
Create a new bool argument and add it to the given command.
Definition: zclk.c:979
zclk_result_type
This enum defines the possible types of result cli program might output.
Definition: zclk.h:73
MODULE_API void zclk_val_set_flag(zclk_val *val, int fval)
set the flag value
Definition: zclk.c:168
MODULE_API void free_option(zclk_option *option)
Definition: zclk.c:473
MODULE_API void free_command(zclk_command *command)
Definition: zclk.c:1050
struct zclk_option_t zclk_option
CLI Option Object.
MODULE_API zclk_res zclk_command_option_add(zclk_command *cmd, zclk_option *option)
Add an option to the given command.
Definition: zclk.c:840
MODULE_API zclk_option * zclk_command_get_option(zclk_command *cmd, const char *name)
Get the option object corresponding to given name.
Definition: zclk.c:990
MODULE_API zclk_res parse_zclk_val(zclk_val *val, char *input)
Definition: zclk.c:210
MODULE_API void clear_zclk_val(zclk_val *val)
MODULE_API zclk_res make_command(zclk_command **command, const char *name, const char *short_name, const char *description, zclk_command_fn handler)
Definition: zclk.c:784
MODULE_API zclk_res make_zclk_val(zclk_val **val, zclk_type type)
Definition: zclk.c:29
MODULE_API zclk_res help_cmd_handler(arraylist *commands, void *handler_args, int argc, char **argv, zclk_command_output_handler success_handler, zclk_command_output_handler error_handler)
Definition: zclk.c:1318
MODULE_API void zclk_command_string_argument(zclk_command *cmd, const char *name, const char *default_val, const char *desc, int nargs)
Create a new bool argument and add it to the given command.
Definition: zclk.c:967
MODULE_API void zclk_command_int_argument(zclk_command *cmd, const char *name, int default_val, const char *desc, int nargs)
Create a new bool argument and add it to the given command.
Definition: zclk.c:943
MODULE_API int zclk_val_to_lua(lua_State *L, zclk_val *val)
Convert a cli value to its lua value.
Definition: zclk.c:260
MODULE_API zclk_command * new_zclk_command(const char *name, const char *short_name, const char *description, zclk_command_fn handler)
Create a command object with automatic error handling.
Definition: zclk.c:819
MODULE_API zclk_val * new_zclk_val_string(const char *string_val)
Create a new string value.
Definition: zclk.c:73
MODULE_API zclk_res get_help_for(char **help_str, arraylist *commands, arraylist *arg_commands)
Definition: zclk.c:1343
MODULE_API zclk_option * new_zclk_option(const char *name, const char *short_name, zclk_val *val, zclk_val *default_val, const char *desc)
(Internal Use) Create an option object
Definition: zclk.c:311
MODULE_API void zclk_command_int_option(zclk_command *cmd, const char *name, const char *short_name, int default_val, const char *desc)
Create a new int option and add it to the given command.
Definition: zclk.c:880
MODULE_API zclk_val * new_zclk_val_bool(int bool_val)
Create a new boolean value.
Definition: zclk.c:40
MODULE_API void free_zclk_val(zclk_val *val)
Definition: zclk.c:176
MODULE_API zclk_res zclk_command_argument_add(zclk_command *cmd, zclk_argument *arg)
Add an argument to the given command.
Definition: zclk.c:854
MODULE_API double zclk_val_get_double(zclk_val *val)
get the double value
Definition: zclk.c:122
MODULE_API zclk_res exec_command(arraylist *commands, void *handler_args, int argc, char **argv)
Definition: zclk.c:1551
MODULE_API void arraylist_zclk_option_to_lua(lua_State *L, int index, void *data)
Utility conversion function passed to arraylist to convert all entries to lua options.
Definition: zclk.c:546
MODULE_API zclk_res zclk_command_exec(zclk_command *cmd, void *exec_args, int argc, char *argv[])
Execute the command with the given args.
Definition: zclk.c:1027
MODULE_API zclk_res make_argument(zclk_argument **arg, const char *name, zclk_val *val, zclk_val *default_val, const char *desc)
Definition: zclk.c:561
MODULE_API int zclk_argument_to_lua(lua_State *L, zclk_argument *arg)
Convert a cli argument to a lua object.
Definition: zclk.c:750
struct zclk_val_t zclk_val
This struct holds the value of the argument or option.
zclk_res
This enum defines the possible error codes generated by functions in the API.
Definition: zclk.h:39
MODULE_API zclk_res print_handler(zclk_res result_flag, zclk_result_type res_type, void *result)
A Print handler prints the result of the command.
Definition: zclk.c:1761
MODULE_API int zclk_val_get_flag(zclk_val *val)
get the flag value
Definition: zclk.c:132
MODULE_API zclk_val * new_zclk_val_double(double double_val)
Create a new double value.
Definition: zclk.c:62
zclk_type
This enum defines the possible datatypes of argument or option values.
Definition: zclk.h:55
MODULE_API void zclk_val_set_int(zclk_val *val, int ival)
set the int value
Definition: zclk.c:145
MODULE_API int zclk_val_get_int(zclk_val *val)
get the int value
Definition: zclk.c:116
MODULE_API void zclk_command_bool_option(zclk_command *cmd, const char *name, const char *short_name, const char *desc)
Create a new boolean option and add it to the given command.
Definition: zclk.c:868
MODULE_API void free_argument(zclk_argument *arg)
Definition: zclk.c:735
MODULE_API void print_table_result(void *result)
Print a tabular result object to the stdout.
Definition: zclk.c:1673
MODULE_API void zclk_command_double_option(zclk_command *cmd, const char *name, const char *short_name, double default_val, const char *desc)
Create a new double option and add it to the given command.
Definition: zclk.c:893
MODULE_API int zclk_val_get_bool(zclk_val *val)
get the boolean value
Definition: zclk.c:111
MODULE_API zclk_res make_option(zclk_option **option, const char *name, const char *short_name, zclk_val *val, zclk_val *default_val, const char *description)
Definition: zclk.c:295
MODULE_API zclk_option * get_option_by_name(arraylist *options, const char *name)
Get the option by name object.
Definition: zclk.c:493
MODULE_API void zclk_fill_options_in_list(arraylist *optlist, zclk_option *options[])
Fill the entries in the given option array into an arraylist.
Definition: zclk.c:550
zclk_res(* zclk_command_fn)(struct zclk_command_t *cmd, void *handler_args)
defines a function to run a command
Definition: zclk.h:381
zclk_res(* zclk_command_output_handler)(zclk_res result_flag, zclk_result_type result_type, void *result)
Defines a function to handle command output.
Definition: zclk.h:372
MODULE_API zclk_argument * new_zclk_argument(const char *name, zclk_val *val, zclk_val *default_val, const char *desc, int nargs)
(Internal use) Create an argument object
Definition: zclk.c:577
MODULE_API void zclk_command_bool_argument(zclk_command *cmd, const char *name, int default_val, const char *desc, int nargs)
Create a new bool argument and add it to the given command.
Definition: zclk.c:932
MODULE_API zclk_argument * zclk_command_get_argument(zclk_command *cmd, const char *name)
Get the argument object corresponding to given name.
Definition: zclk.c:1009
MODULE_API zclk_res zclk_command_subcommand_add(zclk_command *cmd, zclk_command *subcommand)
Add a subcommand to the given command.
Definition: zclk.c:828
MODULE_API zclk_val * new_zclk_val_int(int int_val)
Create a new int value.
Definition: zclk.c:51
MODULE_API void zclk_command_double_argument(zclk_command *cmd, const char *name, double default_val, const char *desc, int nargs)
Create a new bool argument and add it to the given command.
Definition: zclk.c:955
MODULE_API void zclk_val_set_bool(zclk_val *val, int bval)
set the boolean value
Definition: zclk.c:137
MODULE_API const char * zclk_val_get_string(zclk_val *val)
get the string value
Definition: zclk.c:127
MODULE_API int zclk_option_to_lua(lua_State *L, zclk_option *option)
Convert the cli option to a lua value.
Definition: zclk.c:511
MODULE_API void zclk_command_string_option(zclk_command *cmd, const char *name, const char *short_name, const char *default_val, const char *desc)
Create a new string option and add it to the given command.
Definition: zclk.c:906
MODULE_API zclk_val * new_zclk_val_flag(int flag_val)
Create a new flag value.
Definition: zclk.c:84
MODULE_API void zclk_val_set_string(zclk_val *val, const char *sval)
set the string value
Definition: zclk.c:160
MODULE_API void arraylist_zclk_argument_to_lua(lua_State *L, int index, void *data)
Utility conversion function passed to arraylist to convert all entries to lua.
Definition: zclk.c:780
struct zclk_command_t zclk_command
A CLI Command Ojbect.
MODULE_API void zclk_val_set_dobule(zclk_val *val, double dval)
set the double value
Definition: zclk.c:152