add message queue related functions
authorJeonghoon Park <jh1979.park@samsung.com>
Tue, 9 Jan 2018 08:32:11 +0000 (17:32 +0900)
committerJeonghoon Park <jh1979.park@samsung.com>
Tue, 9 Jan 2018 08:32:11 +0000 (17:32 +0900)
inc/message.h
src/message.c

index 57db2f9..dfff3a5 100644 (file)
@@ -24,18 +24,25 @@ typedef enum __message_cmd_e {
        MESSAGE_CMD_BYE, /* to notify explicitly closing connection */
 } message_cmd_e;
 
+struct __message_type_s {
+       unsigned long long int seq_num;
+       message_cmd_e cmd;
+       int servo;
+       int speed;
+       unsigned long long int time; /* to be used to order messages */
+};
 typedef struct __message_type_s message_s;
 
 int message_new(message_cmd_e cmd, int servo, int speed, message_s *new_msg);
 void message_reset_seq_num(void);
 
-/* To encapsulate message struction,
- * we need to discuss about it.
- * which one is better, hiding its members or direct accessing its members?
- */
-int message_get_seq_num(message_s *msg, unsigned long long int *seq_num);
-int message_get_cmd(message_s *msg, message_cmd_e *cmd);
-int message_get_speed_value(message_s *msg, int *speed);
-int message_get_servo_value(message_s *msg, int *servo);
+int message_queue_new(void);
+void message_queue_clear(void);
+
+void message_push_to_inqueue(message_s *msg);
+message_s *message_pop_from_inqueue(void);
+
+void message_push_to_outqueue(message_s *msg);
+message_s *message_pop_from_outqueue(void);
 
 #endif /* __CAR_APP_MESSAGE_H__ */
index db44f37..68cd061 100644 (file)
 
 #include <time.h>
 #include <limits.h>
+#include <stdlib.h>
+#include <glib.h>
+
 #include "log.h"
 #include "message.h"
 
-struct __message_type_s {
-       unsigned long long int seq_num;
-       message_cmd_e cmd;
-       int servo;
-       int speed;
-       unsigned long long int time; /* to be used to order messages */
-};
-
 static unsigned long long int sequence_number = 0;
+static GQueue inqueue = G_QUEUE_INIT;
+static GQueue outqueue = G_QUEUE_INIT;
 
 static unsigned long long int __message_get_monotonic_time(void)
 {