|
12345678910111213141516171819202122232425262728293031 |
- package reqbuilder
-
- import (
- "gitlink.org.cn/cloudream/common/pkg/distlock"
- "gitlink.org.cn/cloudream/common/pkg/distlock/service"
- mylo "gitlink.org.cn/cloudream/common/utils/lo"
- )
-
- type LockRequestBuilder struct {
- locks []distlock.Lock
- }
-
- func NewBuilder() *LockRequestBuilder {
- return &LockRequestBuilder{}
- }
-
- func (b *LockRequestBuilder) Build() distlock.LockRequest {
- return distlock.LockRequest{
- Locks: mylo.ArrayClone(b.locks),
- }
- }
-
- func (b *LockRequestBuilder) MutexLock(svc *service.Service) (*service.Mutex, error) {
- mutex := service.NewMutex(svc, b.Build())
- err := mutex.Lock()
- if err != nil {
- return nil, err
- }
-
- return mutex, nil
- }
|