Browse Source

scheme: Rename structs like kview_info_t to shorter ikview_t

Serj Kalichev 3 years ago
parent
commit
b572f38d56

+ 30 - 1
bin/klishd/klishd.c

@@ -37,6 +37,35 @@
 
 #include "private.h"
 
+#define VIEW_LIST .views = &(iview_t * []) {
+#define END_VIEW_LIST NULL }
+#define VIEW &(iview_t)
+#define COMMAND_LIST .commands = &(icommand_t * []) {
+#define END_COMMAND_LIST NULL }
+#define COMMAND &(icommand_t)
+
+ischeme_t sch = {
+  VIEW_LIST
+
+    VIEW {
+      .name = "view1",
+      COMMAND_LIST
+
+        COMMAND {
+          .name = "command1",
+          .help = "help1",
+        },
+
+      END_COMMAND_LIST,
+    },
+
+    VIEW {
+      .name = "view2",
+    },
+
+  END_VIEW_LIST,
+};
+
 
 // Local static functions
 static int create_listen_unix_sock(const char *path);
@@ -134,7 +163,7 @@ int main(int argc, char **argv)
 	scheme = kscheme_new();
 	{
 	kparam_t *param = NULL;
-	param = kparam_new_static((kparam_info_t){.name="PARAM", .help="This is param", .ptype = "STRING" });
+	param = kparam_new_static((iparam_t){.name="PARAM", .help="This is param", .ptype = "STRING" });
 	param = param;
 	}
 

+ 13 - 5
klish/kaction.h

@@ -10,22 +10,30 @@
 
 typedef struct kaction_s kaction_t;
 
-typedef struct kaction_info_s {
+typedef struct iaction_s {
 	char *sym;
-} kaction_info_t;
+	char *exec_on;
+	char *update_retcode;
+} iaction_t;
 
 
+typedef enum {
+	KACTION_ERROR_OK,
+	KACTION_ERROR_MALLOC,
+	KACTION_ERROR_LIST
+} kaction_error_e;
+
 typedef enum {
 	KACTION_COND_FAIL,
 	KACTION_COND_SUCCESS,
 	KACTION_COND_ALWAYS
-} kaction_chain_e;
+} kaction_cond_e;
 
 
 C_DECL_BEGIN
 
-kaction_t *kaction_new(kaction_info_t info);
-kaction_t *kaction_new_static(kaction_info_t info);
+kaction_t *kaction_new(iaction_t info);
+kaction_t *kaction_new_static(iaction_t info);
 void kaction_free(kaction_t *action);
 
 const char *kaction_name(const kaction_t *action);

+ 5 - 5
klish/kcommand.h

@@ -10,16 +10,16 @@
 
 typedef struct kcommand_s kcommand_t;
 
-typedef struct kcommand_info_s {
+typedef struct icommand_s {
 	char *name;
 	char *help;
-} kcommand_info_t;
-
+	iparam_t * (*params)[];
+} icommand_t;
 
 C_DECL_BEGIN
 
-kcommand_t *kcommand_new(kcommand_info_t info);
-kcommand_t *kcommand_new_static(kcommand_info_t info);
+kcommand_t *kcommand_new(icommand_t info);
+kcommand_t *kcommand_new_static(icommand_t info);
 void kcommand_free(kcommand_t *command);
 
 const char *kcommand_name(const kcommand_t *command);

+ 4 - 4
klish/kparam.h

@@ -8,17 +8,17 @@
 
 typedef struct kparam_s kparam_t;
 
-typedef struct kparam_info_s {
+typedef struct iparam_s {
 	char *name;
 	char *help;
 	char *ptype;
-} kparam_info_t;
+} iparam_t;
 
 
 C_DECL_BEGIN
 
-kparam_t *kparam_new(kparam_info_t info);
-kparam_t *kparam_new_static(kparam_info_t info);
+kparam_t *kparam_new(iparam_t info);
+kparam_t *kparam_new_static(iparam_t info);
 void kparam_free(kparam_t *param);
 
 const char *kparam_name(const kparam_t *param);

+ 4 - 4
klish/kptype.h

@@ -8,16 +8,16 @@
 
 typedef struct kptype_s kptype_t;
 
-typedef struct kptype_info_s {
+typedef struct iptype_s {
 	char *name;
 	char *help;
-} kptype_info_t;
+} iptype_t;
 
 
 C_DECL_BEGIN
 
-kptype_t *kptype_new(kptype_info_t info);
-kptype_t *kptype_new_static(kptype_info_t info);
+kptype_t *kptype_new(iptype_t info);
+kptype_t *kptype_new_static(iptype_t info);
 void kptype_free(kptype_t *ptype);
 
 const char *kptype_name(const kptype_t *ptype);

+ 6 - 0
klish/kscheme.h

@@ -15,6 +15,12 @@
 
 typedef struct kscheme_s kscheme_t;
 
+typedef struct ischeme_s {
+	char *name;
+	iview_t * (*views)[];
+} ischeme_t;
+
+
 C_DECL_BEGIN
 
 kscheme_t *kscheme_new(void);

+ 6 - 4
klish/kscheme/kaction.c

@@ -11,12 +11,13 @@
 
 struct kaction_s {
 	bool_t is_static;
-	kaction_info_t info;
+	kaction_error_e error;
+	iaction_t info;
 	faux_list_t *commands;
 };
 
 
-static kaction_t *kaction_new_internal(kaction_info_t info, bool_t is_static)
+static kaction_t *kaction_new_internal(iaction_t info, bool_t is_static)
 {
 	kaction_t *action = NULL;
 
@@ -27,19 +28,20 @@ static kaction_t *kaction_new_internal(kaction_info_t info, bool_t is_static)
 
 	// Initialize
 	action->is_static = is_static;
+	action->error = KACTION_ERROR_OK;
 	action->info = info;
 
 	return action;
 }
 
 
-kaction_t *kaction_new(kaction_info_t info)
+kaction_t *kaction_new(iaction_t info)
 {
 	return kaction_new_internal(info, BOOL_FALSE);
 }
 
 
-kaction_t *kaction_new_static(kaction_info_t info)
+kaction_t *kaction_new_static(iaction_t info)
 {
 	return kaction_new_internal(info, BOOL_TRUE);
 }

+ 14 - 4
klish/kscheme/kcommand.c

@@ -11,7 +11,8 @@
 
 struct kcommand_s {
 	bool_t is_static;
-	kcommand_info_t info;
+//	kaction_error_e error;
+	icommand_t info;
 	faux_list_t *params;
 };
 
@@ -34,7 +35,7 @@ static int kcommand_param_kcompare(const void *key, const void *list_item)
 }
 
 
-static kcommand_t *kcommand_new_internal(kcommand_info_t info, bool_t is_static)
+static kcommand_t *kcommand_new_internal(icommand_t info, bool_t is_static)
 {
 	kcommand_t *command = NULL;
 
@@ -45,24 +46,33 @@ static kcommand_t *kcommand_new_internal(kcommand_info_t info, bool_t is_static)
 
 	// Initialize
 	command->is_static = is_static;
+//	command->error = KACTION_ERROR_OK;
 	command->info = info;
 
+	// List of parameters
 	command->params = faux_list_new(FAUX_LIST_UNSORTED, FAUX_LIST_UNIQUE,
 		kcommand_param_compare, kcommand_param_kcompare,
 		(void (*)(void *))kparam_free);
 	assert(command->params);
+//	if (!command->params) {
+//		command->error = KACTION_ERROR_LIST;
+//		return NULL;
+//	}
+
+	// Field "exec_on"
+//	if (faux_str_casecmp(command->info.
 
 	return command;
 }
 
 
-kcommand_t *kcommand_new(kcommand_info_t info)
+kcommand_t *kcommand_new(icommand_t info)
 {
 	return kcommand_new_internal(info, BOOL_FALSE);
 }
 
 
-kcommand_t *kcommand_new_static(kcommand_info_t info)
+kcommand_t *kcommand_new_static(icommand_t info)
 {
 	return kcommand_new_internal(info, BOOL_TRUE);
 }

+ 4 - 4
klish/kscheme/kparam.c

@@ -10,7 +10,7 @@
 
 struct kparam_s {
 	bool_t is_static;
-	kparam_info_t info;
+	iparam_t info;
 	faux_list_t *params; // Nested parameters
 };
 
@@ -33,7 +33,7 @@ static int kparam_param_kcompare(const void *key, const void *list_item)
 }
 
 
-static kparam_t *kparam_new_internal(kparam_info_t info, bool_t is_static)
+static kparam_t *kparam_new_internal(iparam_t info, bool_t is_static)
 {
 	kparam_t *param = NULL;
 
@@ -55,13 +55,13 @@ static kparam_t *kparam_new_internal(kparam_info_t info, bool_t is_static)
 }
 
 
-kparam_t *kparam_new(kparam_info_t info)
+kparam_t *kparam_new(iparam_t info)
 {
 	return kparam_new_internal(info, BOOL_FALSE);
 }
 
 
-kparam_t *kparam_new_static(kparam_info_t info)
+kparam_t *kparam_new_static(iparam_t info)
 {
 	return kparam_new_internal(info, BOOL_TRUE);
 }

+ 4 - 4
klish/kscheme/kptype.c

@@ -10,11 +10,11 @@
 
 struct kptype_s {
 	bool_t is_static;
-	kptype_info_t info;
+	iptype_t info;
 };
 
 
-static kptype_t *kptype_new_internal(kptype_info_t info, bool_t is_static)
+static kptype_t *kptype_new_internal(iptype_t info, bool_t is_static)
 {
 	kptype_t *ptype = NULL;
 
@@ -31,13 +31,13 @@ static kptype_t *kptype_new_internal(kptype_info_t info, bool_t is_static)
 }
 
 
-kptype_t *kptype_new(kptype_info_t info)
+kptype_t *kptype_new(iptype_t info)
 {
 	return kptype_new_internal(info, BOOL_FALSE);
 }
 
 
-kptype_t *kptype_new_static(kptype_info_t info)
+kptype_t *kptype_new_static(iptype_t info)
 {
 	return kptype_new_internal(info, BOOL_TRUE);
 }

+ 4 - 4
klish/kscheme/kview.c

@@ -11,7 +11,7 @@
 
 struct kview_s {
 	bool_t is_static;
-	kview_info_t info;
+	iview_t info;
 	faux_list_t *commands;
 };
 
@@ -34,7 +34,7 @@ static int kview_command_kcompare(const void *key, const void *list_item)
 }
 
 
-static kview_t *kview_new_internal(kview_info_t info, bool_t is_static)
+static kview_t *kview_new_internal(iview_t info, bool_t is_static)
 {
 	kview_t *view = NULL;
 
@@ -56,13 +56,13 @@ static kview_t *kview_new_internal(kview_info_t info, bool_t is_static)
 }
 
 
-kview_t *kview_new(kview_info_t info)
+kview_t *kview_new(iview_t info)
 {
 	return kview_new_internal(info, BOOL_FALSE);
 }
 
 
-kview_t *kview_new_static(kview_info_t info)
+kview_t *kview_new_static(iview_t info)
 {
 	return kview_new_internal(info, BOOL_TRUE);
 }

+ 5 - 4
klish/kview.h

@@ -10,15 +10,16 @@
 
 typedef struct kview_s kview_t;
 
-typedef struct kview_info_s {
+typedef struct iview_s {
 	char *name;
-} kview_info_t;
+	icommand_t * (*commands)[];
+} iview_t;
 
 
 C_DECL_BEGIN
 
-kview_t *kview_new(kview_info_t info);
-kview_t *kview_new_static(kview_info_t info);
+kview_t *kview_new(iview_t info);
+kview_t *kview_new_static(iview_t info);
 void kview_free(kview_t *view);
 
 const char *kview_name(const kview_t *view);