From 32a68a1ab439e29919b715a674a034fa15411076 Mon Sep 17 00:00:00 2001
From: Jiri Kalvoda <jirikalvoda@kam.mff.cuni.cz>
Date: Sun, 7 Feb 2021 16:07:26 +0100
Subject: [PATCH] Code clean

---
 osdd-exec.c      |  4 ++--
 osdd-file.c      | 40 +++++-----------------------------------
 osdd-mqtt.c      | 42 +++++++-----------------------------------
 osdd-run         |  8 ++++++--
 osdd-set.h       |  2 +-
 osdd-system.c    |  4 ++--
 osdd-to-string.h |  4 ++--
 7 files changed, 25 insertions(+), 79 deletions(-)

diff --git a/osdd-exec.c b/osdd-exec.c
index c793701..f19c80f 100644
--- a/osdd-exec.c
+++ b/osdd-exec.c
@@ -45,7 +45,7 @@ void exec_write(struct exec_state *state, VECTOR(VECTOR(char)) in)
 	VFREE(in);
 }
 
-INIT_FUNC_USING_TO_STRINGS_VECTOR(exec)
+CREATE_FUNC_USING_TO_STRINGS_VECTOR(exec)
 
 // *************************  NEW ******************
 
@@ -97,7 +97,7 @@ struct osd_abstract exec_new(int argc, char ** argv, Display * nope)
 		VPB(state->prefix, argv[ind]);
 	}
 
-	INIT_FUNC_TO_ABSTRACT(r, exec)
+	ADD_FUNC_TO_ABSTRACT(r, exec)
 	return r;
 }
 
diff --git a/osdd-file.c b/osdd-file.c
index ce1bdc8..3929bf4 100644
--- a/osdd-file.c
+++ b/osdd-file.c
@@ -27,7 +27,7 @@ struct file_state
 // *************************  MAIN FUNCTIONS *******
 
 static
-void file_write_to_file(struct file_state *state, VECTOR(char) out)
+void file_write(struct file_state *state, VECTOR(char) out)
 {
 	if(!out) return;
 	FILE * f = fopen(state->file_name,state->open_mode);
@@ -39,24 +39,7 @@ void file_write_to_file(struct file_state *state, VECTOR(char) out)
 	VFREE(out);
 }
 
-static
-bool file_arrive(struct file_state *state, struct osd_line * lines, int num_lines)
-{
-	file_write_to_file(state,osd_to_string_arrivee_msq(&state->to_string, lines, num_lines));
-	return state->to_string.do_not_insert_msg_to_que;
-}
-
-static
-void file_show(struct file_state *state, struct osd_line * lines, int num_lines)
-{
-	file_write_to_file(state,osd_to_string_show_msg(&state->to_string, lines, num_lines));
-}
-
-static
-void file_clear(struct file_state *state)
-{
-	file_write_to_file(state,osd_to_string_clear_msg(&state->to_string));
-}
+CREATE_FUNC_USING_TO_STRING(file)
 
 // *************************  NEW ******************
 
@@ -122,23 +105,10 @@ struct osd_abstract file_new(int argc, char ** argv, Display * nope)
 
 	}
 
-	r.context = state;
-	bool (*arrive)(struct file_state*, struct osd_line*, int) = file_arrive;
-	r.arrive = (bool (*)(void*, struct osd_line*, int)) arrive;
-	void (*show)(struct file_state*, struct osd_line*, int) = file_show;
-	r.show = (void (*)(void*, struct osd_line*, int)) show;
-	void (*clear)(struct file_state*) = file_clear;
-	r.clear = (void (*)(void*)) clear;
+	ADD_FUNC_TO_ABSTRACT(r, file)
 	return r;
 }
 
 // *************************  CREATOR ****************************
-struct osd_creator_abstract file_creator_new(void)
-{
-  struct osd_creator_abstract r;
-  memset(&r, 0, sizeof(r));
-  r.name = "FILE";
-  r.help = file_new_help;
-  r.new.add_one_osd = file_new;
-  return r;
-}
+
+CREATE_STANDARD_CREATOR(file, "FILE")
diff --git a/osdd-mqtt.c b/osdd-mqtt.c
index d03a608..4d46c83 100644
--- a/osdd-mqtt.c
+++ b/osdd-mqtt.c
@@ -65,6 +65,8 @@ void mqtt_fork_connect(struct mqtt_fork_state * fork_state)
 		conn_opts.username = fork_state->state->mqtt_user;
 		conn_opts.password = fork_state->state->mqtt_passwd;
 
+		MQTTClient_setCallbacks(fork_state->client, NULL, NULL, NULL, NULL);
+
 		if ((rc = MQTTClient_connect(fork_state->client , &conn_opts)) == MQTTCLIENT_SUCCESS)
 		{
 			//fprintf(stderr,"MQTT CONNECT OK\n");
@@ -130,7 +132,7 @@ void NONRET mqtt_fork_main(struct mqtt_state * state, int fd)
 // *************************  MAIN FUNCTIONS *******
 
 static
-void mqtt_write_to_mqtt(struct mqtt_state *state, VECTOR(char) out)
+void mqtt_write(struct mqtt_state *state, VECTOR(char) out)
 {
 	if(!out) return;
 	int size = VSIZE(out);
@@ -142,24 +144,7 @@ void mqtt_write_to_mqtt(struct mqtt_state *state, VECTOR(char) out)
 	VFREE(out);
 }
 
-static
-bool mqtt_arrive(struct mqtt_state *state, struct osd_line * lines, int num_lines)
-{
-	mqtt_write_to_mqtt(state,osd_to_string_arrivee_msq(&state->to_string, lines, num_lines));
-	return state->to_string.do_not_insert_msg_to_que;
-}
-
-static
-void mqtt_show(struct mqtt_state *state, struct osd_line * lines, int num_lines)
-{
-	mqtt_write_to_mqtt(state,osd_to_string_show_msg(&state->to_string, lines, num_lines));
-}
-
-static
-void mqtt_clear(struct mqtt_state *state)
-{
-	mqtt_write_to_mqtt(state,osd_to_string_clear_msg(&state->to_string));
-}
+CREATE_FUNC_USING_TO_STRING(mqtt)
 
 // *************************  NEW ******************
 
@@ -234,13 +219,7 @@ struct osd_abstract mqtt_new(int argc, char ** argv, Display * nope)
 
 	}
 
-	r.context = state;
-	bool (*arrive)(struct mqtt_state*, struct osd_line*, int) = mqtt_arrive;
-	r.arrive = (bool (*)(void*, struct osd_line*, int)) arrive;
-	void (*show)(struct mqtt_state*, struct osd_line*, int) = mqtt_show;
-	r.show = (void (*)(void*, struct osd_line*, int)) show;
-	void (*clear)(struct mqtt_state*) = mqtt_clear;
-	r.clear = (void (*)(void*)) clear;
+	ADD_FUNC_TO_ABSTRACT(r,mqtt);
 	int fd[2];
 	pipe(fd);
 	if(fork() == 0)
@@ -256,12 +235,5 @@ struct osd_abstract mqtt_new(int argc, char ** argv, Display * nope)
 }
 
 // *************************  CREATOR ****************************
-struct osd_creator_abstract mqtt_creator_new(void)
-{
-  struct osd_creator_abstract r;
-  memset(&r, 0, sizeof(r));
-  r.name = "MQTT";
-  r.help = mqtt_new_help;
-  r.new.add_one_osd = mqtt_new;
-  return r;
-}
+
+CREATE_STANDARD_CREATOR(mqtt,"MQTT")
diff --git a/osdd-run b/osdd-run
index 14d1fa9..fd179e7 100755
--- a/osdd-run
+++ b/osdd-run
@@ -12,11 +12,15 @@ XENVIRONMENT=$tmp \
 	FILE default log loglog [ -b -l' ' -m'\n' -T' ' -tiso -cterm ~/.osdd_log  ] \
 	FILE default log loglast [ -l'\n' -tunix -T'\n' -crgbHEX -r ~/.osdd_last ] \
 	FILE stdout [ -A -l' ' -m'\n' /dev/stdout ] \
-	MQTT default mqtt led [ -e'\0' -E -crgbDEC -tunix -r -R -q0 \
+	MQTT default mqtt led [ -e'\0' -E -crgbDEC -tunix -r -R -q1 \
 		$(cat ~/.secret/mqtt/rpi0-all.addres) \
 		$(cat ~/.secret/mqtt/rpi0-led-include.user) \
 		$(cat ~/.secret/mqtt/rpi0-led-include.passwd) \
 		osd/arch ] \
-	 | bash
+	EXEC exec [ -A ] \
+	SYSTEM system [ -a -l' ' -m'\n' ]  \
+	| bash
 rm $tmp
 pkill -f not2osd
+
+	#EXEC default [ -cterm cowsay ] \
diff --git a/osdd-set.h b/osdd-set.h
index e77cbc4..52d9c47 100644
--- a/osdd-set.h
+++ b/osdd-set.h
@@ -115,7 +115,7 @@ struct osd_creator_abstract NAME ## _creator_new(void) \
   return r; \
 }
 
-#define INIT_FUNC_TO_ABSTRACT(r, NAME) \
+#define ADD_FUNC_TO_ABSTRACT(r, NAME) \
 { \
 	r.context = state; \
 	bool (*arrive)(struct NAME ## _state*, struct osd_line*, int) = NAME ## _arrive; \
diff --git a/osdd-system.c b/osdd-system.c
index 784d65d..2ac0d20 100644
--- a/osdd-system.c
+++ b/osdd-system.c
@@ -47,7 +47,7 @@ void system_write(struct system_state *state, VECTOR(char) in)
 	VFREE(in);
 }
 
-INIT_FUNC_USING_TO_STRING(system)
+CREATE_FUNC_USING_TO_STRING(system)
 
 
 // *************************  NEW ******************
@@ -110,7 +110,7 @@ struct osd_abstract system_new(int argc, char ** argv, Display * nope)
 
 	}
 
-	INIT_FUNC_TO_ABSTRACT(r, system)
+	ADD_FUNC_TO_ABSTRACT(r, system)
 	return r;
 }
 
diff --git a/osdd-to-string.h b/osdd-to-string.h
index 0d38778..ed4d12f 100644
--- a/osdd-to-string.h
+++ b/osdd-to-string.h
@@ -94,7 +94,7 @@ bool osd_to_string_parse_arg(struct osd_to_string_state *state, char arg);
 bool osd_to_strings_vector_parse_arg(struct osd_to_string_state *state, char arg);
 void osd_to_string_state_init(struct osd_to_string_state * state);
 
-#define INIT_FUNC_USING_TO_STRING(NAME) \
+#define CREATE_FUNC_USING_TO_STRING(NAME) \
 static \
 bool NAME ## _arrive(struct NAME ## _state *state, struct osd_line * lines, int num_lines) \
 { \
@@ -114,7 +114,7 @@ void NAME ## _clear(struct NAME ## _state *state) \
 	NAME ## _write(state,osd_to_string_clear_msg(&state->to_string)); \
 }
 
-#define INIT_FUNC_USING_TO_STRINGS_VECTOR(NAME) \
+#define CREATE_FUNC_USING_TO_STRINGS_VECTOR(NAME) \
 static \
 bool NAME ## _arrive(struct NAME ## _state *state, struct osd_line * lines, int num_lines) \
 { \
-- 
GitLab