about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/chat_session.c16
-rw-r--r--src/chat_session.h4
2 files changed, 20 insertions, 0 deletions
diff --git a/src/chat_session.c b/src/chat_session.c
index 98628ab5..ff51b29d 100644
--- a/src/chat_session.c
+++ b/src/chat_session.c
@@ -33,6 +33,7 @@ static void _chat_session_free(ChatSession session);
 struct chat_session_t {
     char *recipient;
     chat_state_t state;
+    gboolean sent;
 };
 
 static GHashTable *sessions;
@@ -75,6 +76,20 @@ chat_session_set_state(char *recipient, chat_state_t state)
     session->state = state;
 }
 
+gboolean
+chat_session_get_sent(char *recipient)
+{
+    ChatSession session = g_hash_table_lookup(sessions, recipient);
+    return session->sent;
+}
+
+void
+chat_session_sent(char *recipient)
+{
+    ChatSession session = g_hash_table_lookup(sessions, recipient);
+    session->sent = TRUE;
+}
+
 static ChatSession
 _chat_session_new(char *recipient)
 {
@@ -82,6 +97,7 @@ _chat_session_new(char *recipient)
     new_session->recipient = malloc(strlen(recipient) + 1);
     strcpy(new_session->recipient, recipient);
     new_session->state = ACTIVE;
+    new_session->sent = FALSE;
     
     return new_session;
 }
diff --git a/src/chat_session.h b/src/chat_session.h
index 6b585a02..8c0d9048 100644
--- a/src/chat_session.h
+++ b/src/chat_session.h
@@ -23,6 +23,8 @@
 #ifndef CHAT_SESSION_H
 #define CHAT_SESSION_H
 
+#include <glib.h>
+
 typedef struct chat_session_t *ChatSession;
 
 typedef enum {
@@ -39,5 +41,7 @@ void chat_session_start(char *recipient);
 void chat_session_end(char *recipient);
 chat_state_t chat_session_get_state(char *recipient);
 void chat_session_set_state(char *recipient, chat_state_t state);
+gboolean chat_session_get_sent(char *recipient);
+void chat_session_sent(char *recipient);
 
 #endif