From b5ecbae40ab352995df2461301d72067ae5ed397 Mon Sep 17 00:00:00 2001 From: sostler Date: Thu, 27 May 2010 20:24:39 -0400 Subject: Fixed feed msg insertion transaction --- src/rooms.clj | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/rooms.clj') diff --git a/src/rooms.clj b/src/rooms.clj index e18a434..09b81ba 100644 --- a/src/rooms.clj +++ b/src/rooms.clj @@ -1,7 +1,10 @@ (ns rooms + (:import java.util.Date) (:use clojure.contrib.str-utils utils)) +(defstruct message-struct :nick :content :created_on :msg_id) + (def *run-flusher* true) (def *flusher-sleep* (seconds 4)) (def *user-timeout* (seconds 15)) @@ -81,6 +84,12 @@ (defn login-user [user room] (alter (room :users) assoc (user :nick) user)) +; Note: To ensure that the msg's timestamp is consistent +; with other msg creations, build-msg should be called +; from within a dosync. +(defn build-msg [nick content msg-id] + (struct message-struct nick content (new Date) msg-id)) + (defn add-message [msg room] (alter (room :messages) (swap cons) msg)) -- cgit v1.2.3-70-g09d2