From e0fdd16b4ff9e5964fe2be74168f63a7229fe7a9 Mon Sep 17 00:00:00 2001 From: Jeonghoon Park Date: Tue, 9 Jan 2018 17:32:11 +0900 Subject: [PATCH] add message queue related functions --- inc/message.h | 23 +++++++++++++++-------- src/message.c | 13 +++++-------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/inc/message.h b/inc/message.h index 57db2f9..dfff3a5 100644 --- a/inc/message.h +++ b/inc/message.h @@ -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__ */ diff --git a/src/message.c b/src/message.c index db44f37..68cd061 100644 --- a/src/message.c +++ b/src/message.c @@ -16,18 +16,15 @@ #include #include +#include +#include + #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) { -- 2.7.4