31 lines
592 B
Go
31 lines
592 B
Go
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
|
|
//go:build script
|
|
|
|
package js
|
|
|
|
import "sync"
|
|
|
|
var SharedLibraryManager = NewLibraryManager()
|
|
|
|
type LibraryManager struct {
|
|
list []LibraryInterface
|
|
locker sync.Mutex
|
|
}
|
|
|
|
func NewLibraryManager() *LibraryManager {
|
|
return &LibraryManager{}
|
|
}
|
|
|
|
func (this *LibraryManager) Register(library LibraryInterface) {
|
|
this.locker.Lock()
|
|
this.list =
|
|
append(this.list, library)
|
|
this.locker.Unlock()
|
|
}
|
|
|
|
func (this *LibraryManager) All() []LibraryInterface {
|
|
this.locker.Lock()
|
|
defer this.locker.Unlock()
|
|
return this.list
|
|
}
|