diff options
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.st | 46 |
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 +] |
