summaryrefslogtreecommitdiff
path: root/pharo-mooc/tiny-chat/src/TinyChat-server/TCMessageQueue.class.st
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2025-11-23 17:05:53 +0100
committerEugen Wissner <belka@caraus.de>2025-11-23 17:05:53 +0100
commitf3b3d4b1a26eba872c32ad95fc112650011b625c (patch)
tree483c90b08fb640f9f96b83393f64af9b7e752984 /pharo-mooc/tiny-chat/src/TinyChat-server/TCMessageQueue.class.st
parentbf11813e4fa859a4833cab226c4ea560765d6d77 (diff)
downloadbook-exercises-f3b3d4b1a26eba872c32ad95fc112650011b625c.tar.gz
Add the tiny-chat project from the Pharo MOOC
Diffstat (limited to 'pharo-mooc/tiny-chat/src/TinyChat-server/TCMessageQueue.class.st')
-rw-r--r--pharo-mooc/tiny-chat/src/TinyChat-server/TCMessageQueue.class.st46
1 files changed, 46 insertions, 0 deletions
diff --git a/pharo-mooc/tiny-chat/src/TinyChat-server/TCMessageQueue.class.st b/pharo-mooc/tiny-chat/src/TinyChat-server/TCMessageQueue.class.st
new file mode 100644
index 0000000..859c77d
--- /dev/null
+++ b/pharo-mooc/tiny-chat/src/TinyChat-server/TCMessageQueue.class.st
@@ -0,0 +1,46 @@
+Class {
+ #name : 'TCMessageQueue',
+ #superclass : 'Object',
+ #instVars : [
+ 'messages'
+ ],
+ #category : 'TinyChat-server',
+ #package : 'TinyChat-server'
+}
+
+{ #category : 'adding' }
+TCMessageQueue >> add: aMessage [
+ messages add: aMessage
+]
+
+{ #category : 'adding' }
+TCMessageQueue >> formattedMessagesFrom: aMessageNumber [
+
+ ^ String streamContents: [ :formattedMessagesStream |
+ (self listFrom: aMessageNumber)
+ do: [ :m | formattedMessagesStream << m printString ]
+ ]
+]
+
+{ #category : 'initialization' }
+TCMessageQueue >> initialize [
+ super initialize.
+ messages := OrderedCollection new
+]
+
+{ #category : 'adding' }
+TCMessageQueue >> listFrom: aIndex [
+ ^ (aIndex > 0 and: [ aIndex <= messages size ])
+ ifTrue: [ messages copyFrom: aIndex to: messages size ]
+ ifFalse: [ #() ]
+]
+
+{ #category : 'adding' }
+TCMessageQueue >> reset [
+ messages removeAll
+]
+
+{ #category : 'adding' }
+TCMessageQueue >> size [
+ ^ messages size
+]