first commit
This commit is contained in:
45
server/chatserver/logic/queue.go
Normal file
45
server/chatserver/logic/queue.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package logic
|
||||
|
||||
type Item interface {
|
||||
}
|
||||
|
||||
// Item the type of the queue
|
||||
type ItemQueue struct {
|
||||
items []Item
|
||||
}
|
||||
|
||||
type ItemQueuer interface {
|
||||
New() ItemQueue
|
||||
Enqueue(t Item)
|
||||
Dequeue() *Item
|
||||
IsEmpty() bool
|
||||
Size() int
|
||||
}
|
||||
|
||||
// New creates a new ItemQueue
|
||||
func (s *ItemQueue) New() *ItemQueue {
|
||||
s.items = []Item{}
|
||||
return s
|
||||
}
|
||||
|
||||
// Enqueue adds an Item to the end of the queue
|
||||
func (s *ItemQueue) Enqueue(t Item) {
|
||||
s.items = append(s.items, t)
|
||||
}
|
||||
|
||||
// dequeue
|
||||
func (s *ItemQueue) Dequeue() *Item {
|
||||
item := s.items[0] // 先进先出
|
||||
s.items = s.items[1:len(s.items)]
|
||||
|
||||
return &item
|
||||
}
|
||||
|
||||
func (s *ItemQueue) IsEmpty() bool {
|
||||
return len(s.items) == 0
|
||||
}
|
||||
|
||||
// Size returns the number of Items in the queue
|
||||
func (s *ItemQueue) Size() int {
|
||||
return len(s.items)
|
||||
}
|
||||
Reference in New Issue
Block a user