summaryrefslogtreecommitdiff
path: root/pharo-mooc/tiny-chat/src/TinyChat-server/TCMessageQueue.class.st
blob: 859c77df86c75e7a53f4bfb2303b2cedd6f07508 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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
]