Browse Source

scheme: Functions to get element lists

Serj Kalichev 3 years ago
parent
commit
d0a56b72f8

+ 5 - 2
klish/kcommand.h

@@ -25,13 +25,16 @@ const char *kcommand_name(const kcommand_t *command);
 const char *kcommand_help(const kcommand_t *command);
 bool_t kcommand_set_help(kcommand_t *command, const char *help);
 
-// params
+// PARAMs
+faux_list_t *kcommand_params(const kcommand_t *command);
 bool_t kcommand_add_param(kcommand_t *command, kparam_t *param);
 kparam_t *kcommand_find_param(const kcommand_t *command, const char *name);
 ssize_t kcommand_params_len(const kcommand_t *command);
 kcommand_params_node_t *kcommand_params_iter(const kcommand_t *command);
 kparam_t *kcommand_params_each(kcommand_params_node_t **iter);
-// actions
+
+// ACTIONs
+faux_list_t *kcommand_actions(const kcommand_t *command);
 bool_t kcommand_add_action(kcommand_t *command, kaction_t *action);
 ssize_t kcommand_actions_len(const kcommand_t *command);
 kcommand_actions_node_t *kcommand_actions_iter(const kcommand_t *command);

+ 3 - 1
klish/kparam.h

@@ -25,9 +25,11 @@ bool_t kparam_set_help(kparam_t *param, const char *help);
 const char *kparam_ptype_ref(const kparam_t *param);
 bool_t kparam_set_ptype_ref(kparam_t *param, const char *ptype_ref);
 
-// params
+// PARAMs
+faux_list_t *kparam_params(const kparam_t *param);
 bool_t kparam_add_param(kparam_t *param, kparam_t *nested_param);
 kparam_t *kparam_find_param(const kparam_t *param, const char *name);
+ssize_t kparam_params_len(const kparam_t *param);
 kparam_params_node_t *kparam_params_iter(const kparam_t *param);
 kparam_t *kparam_params_each(kparam_params_node_t **iter);
 

+ 2 - 1
klish/kplugin.h

@@ -59,7 +59,8 @@ bool_t kplugin_load(kplugin_t *plugin);
 int kplugin_init(kplugin_t *plugin, kcontext_t *context);
 int kplugin_fini(kplugin_t *plugin, kcontext_t *context);
 
-// syms
+// SYMs
+faux_list_t *kplugin_syms(const kplugin_t *plugin);
 bool_t kplugin_add_sym(kplugin_t *plugin, ksym_t *sym);
 ksym_t *kplugin_find_sym(const kplugin_t *plugin, const char *name);
 ssize_t kplugin_syms_len(const kplugin_t *plugin);

+ 2 - 1
klish/kptype.h

@@ -22,7 +22,8 @@ const char *kptype_name(const kptype_t *ptype);
 const char *kptype_help(const kptype_t *ptype);
 bool_t kptype_set_help(kptype_t *ptype, const char *help);
 
-// actions
+// ACTIONs
+faux_list_t *kptype_actions(const kptype_t *ptype);
 bool_t kptype_add_action(kptype_t *plugin, kaction_t *action);
 ssize_t kptype_actions_len(const kptype_t *plugin);
 kptype_actions_node_t *kptype_actions_iter(const kptype_t *plugin);

+ 8 - 3
klish/kscheme.h

@@ -25,19 +25,24 @@ C_DECL_BEGIN
 kscheme_t *kscheme_new(void);
 void kscheme_free(kscheme_t *scheme);
 
-// views
+// VIEWs
+faux_list_t *kscheme_views(const kscheme_t *scheme);
 bool_t kscheme_add_view(kscheme_t *scheme, kview_t *view);
 kview_t *kscheme_find_view(const kscheme_t *scheme, const char *name);
 ssize_t kscheme_views_len(const kscheme_t *scheme);
 kscheme_views_node_t *kscheme_views_iter(const kscheme_t *scheme);
 kview_t *kscheme_views_each(kscheme_views_node_t **iter);
-// ptypes
+
+// PTYPEs
+faux_list_t *kscheme_ptypes(const kscheme_t *scheme);
 bool_t kscheme_add_ptype(kscheme_t *scheme, kptype_t *ptype);
 kptype_t *kscheme_find_ptype(const kscheme_t *scheme, const char *name);
 ssize_t kscheme_ptypes_len(const kscheme_t *scheme);
 kscheme_ptypes_node_t *kscheme_ptypes_iter(const kscheme_t *scheme);
 kptype_t *kscheme_ptypes_each(kscheme_ptypes_node_t **iter);
-// plugins
+
+// PLUGINs
+faux_list_t *kscheme_plugins(const kscheme_t *scheme);
 bool_t kscheme_add_plugin(kscheme_t *scheme, kplugin_t *plugin);
 kplugin_t *kscheme_find_plugin(const kscheme_t *scheme, const char *name);
 ssize_t kscheme_plugins_len(const kscheme_t *scheme);

+ 2 - 0
klish/kscheme/kcommand.c

@@ -28,6 +28,7 @@ KGET_STR(command, help);
 KSET_STR(command, help);
 
 // PARAM list
+KGET(command, faux_list_t *, params);
 static KCMP_NESTED(command, param, name);
 static KCMP_NESTED_BY_KEY(command, param, name);
 KADD_NESTED(command, param);
@@ -37,6 +38,7 @@ KNESTED_ITER(command, param);
 KNESTED_EACH(command, param);
 
 // ACTION list
+KGET(command, faux_list_t *, actions);
 KADD_NESTED(command, action);
 KNESTED_LEN(command, action);
 KNESTED_ITER(command, action);

+ 3 - 2
klish/kscheme/kdb.c

@@ -56,7 +56,8 @@ KSET(db, uint8_t, minor);
 KGET(db, void *, udata);
 KSET(db, void *, udata);
 
-// COMMAND list
+// SYM list
+/*
 static KCMP_NESTED(db, sym, name);
 static KCMP_NESTED_BY_KEY(db, sym, name);
 KADD_NESTED(db, sym);
@@ -64,7 +65,7 @@ KFIND_NESTED(db, sym);
 KNESTED_LEN(db, sym);
 KNESTED_ITER(db, sym);
 KNESTED_EACH(db, sym);
-
+*/
 
 kdb_t *kdb_new(const char *name)
 {

+ 1 - 0
klish/kscheme/kparam.c

@@ -36,6 +36,7 @@ KGET(param, kptype_t *, ptype);
 KSET(param, kptype_t *, ptype);
 
 // PARAM list
+KGET(param, faux_list_t *, params);
 static KCMP_NESTED(param, param, name);
 static KCMP_NESTED_BY_KEY(param, param, name);
 KADD_NESTED(param, param);

+ 2 - 1
klish/kscheme/kplugin.c

@@ -59,7 +59,8 @@ KSET(plugin, uint8_t, minor);
 KGET(plugin, void *, udata);
 KSET(plugin, void *, udata);
 
-// COMMAND list
+// SYMs list
+KGET(plugin, faux_list_t *, syms);
 static KCMP_NESTED(plugin, sym, name);
 static KCMP_NESTED_BY_KEY(plugin, sym, name);
 KADD_NESTED(plugin, sym);

+ 1 - 0
klish/kscheme/kptype.c

@@ -28,6 +28,7 @@ KGET_STR(ptype, help);
 KSET_STR(ptype, help);
 
 // ACTION list
+KGET(ptype, faux_list_t *, actions);
 KADD_NESTED(ptype, action);
 KNESTED_LEN(ptype, action);
 KNESTED_ITER(ptype, action);

+ 3 - 0
klish/kscheme/kscheme.c

@@ -22,6 +22,7 @@ struct kscheme_s {
 // Simple methods
 
 // PLUGIN list
+KGET(scheme, faux_list_t *, plugins);
 KCMP_NESTED(scheme, plugin, name);
 KCMP_NESTED_BY_KEY(scheme, plugin, name);
 KADD_NESTED(scheme, plugin);
@@ -31,6 +32,7 @@ KNESTED_ITER(scheme, plugin);
 KNESTED_EACH(scheme, plugin);
 
 // PTYPE list
+KGET(scheme, faux_list_t *, ptypes);
 KCMP_NESTED(scheme, ptype, name);
 KCMP_NESTED_BY_KEY(scheme, ptype, name);
 KADD_NESTED(scheme, ptype);
@@ -40,6 +42,7 @@ KNESTED_ITER(scheme, ptype);
 KNESTED_EACH(scheme, ptype);
 
 // VIEW list
+KGET(scheme, faux_list_t *, views);
 KCMP_NESTED(scheme, view, name);
 KCMP_NESTED_BY_KEY(scheme, view, name);
 KADD_NESTED(scheme, view);

+ 1 - 0
klish/kscheme/kview.c

@@ -22,6 +22,7 @@ struct kview_s {
 KGET_STR(view, name);
 
 // COMMAND list
+KGET(view, faux_list_t *, commands);
 KCMP_NESTED(view, command, name);
 KCMP_NESTED_BY_KEY(view, command, name);
 KADD_NESTED(view, command);

+ 2 - 1
klish/kview.h

@@ -23,7 +23,8 @@ void kview_free(kview_t *view);
 
 const char *kview_name(const kview_t *view);
 
-// commands
+// COMMANDs
+faux_list_t *kview_commands(const kview_t *view);
 bool_t kview_add_command(kview_t *view, kcommand_t *command);
 kcommand_t *kview_find_command(const kview_t *view, const char *name);
 ssize_t kview_commands_len(const kview_t *view);