mirror of
https://github.com/JackDallas/Premiumizearr.git
synced 2026-03-25 18:37:09 +01:00
37 lines
903 B
Go
37 lines
903 B
Go
package stringqueue
|
|
|
|
import "sync"
|
|
|
|
func NewStringQueue() *StringQueue {
|
|
return &StringQueue{queue: make([]string, 0), mutex: &sync.Mutex{}}
|
|
}
|
|
|
|
func (UploadQueue *StringQueue) Len() int {
|
|
UploadQueue.mutex.Lock()
|
|
defer UploadQueue.mutex.Unlock()
|
|
return len(UploadQueue.queue)
|
|
}
|
|
|
|
func (UploadQueue *StringQueue) Add(path string) {
|
|
UploadQueue.mutex.Lock()
|
|
defer UploadQueue.mutex.Unlock()
|
|
UploadQueue.queue = append(UploadQueue.queue, path)
|
|
}
|
|
|
|
func (UploadQueue *StringQueue) PopTopOfQueue() (bool, string) {
|
|
UploadQueue.mutex.Lock()
|
|
defer UploadQueue.mutex.Unlock()
|
|
if len(UploadQueue.queue) > 0 {
|
|
rtn := UploadQueue.queue[0]
|
|
UploadQueue.queue = UploadQueue.queue[1:]
|
|
return true, rtn
|
|
}
|
|
return false, ""
|
|
}
|
|
|
|
func (UploadQueue *StringQueue) GetQueue() []string {
|
|
UploadQueue.mutex.Lock()
|
|
defer UploadQueue.mutex.Unlock()
|
|
return UploadQueue.queue
|
|
}
|