github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/engine/delegate_factory.go (about) 1 package engine 2 3 import ( 4 "code.cloudfoundry.org/clock" 5 6 "github.com/pf-qiu/concourse/v6/atc" 7 "github.com/pf-qiu/concourse/v6/atc/db" 8 "github.com/pf-qiu/concourse/v6/atc/exec" 9 "github.com/pf-qiu/concourse/v6/atc/policy" 10 ) 11 12 type DelegateFactory struct { 13 build db.Build 14 plan atc.Plan 15 rateLimiter RateLimiter 16 policyChecker policy.Checker 17 } 18 19 func buildDelegateFactory( 20 build db.Build, 21 plan atc.Plan, 22 rateLimiter RateLimiter, 23 policyChecker policy.Checker, 24 ) DelegateFactory { 25 return DelegateFactory{ 26 build: build, 27 plan: plan, 28 rateLimiter: rateLimiter, 29 policyChecker: policyChecker, 30 } 31 } 32 33 func (delegate DelegateFactory) GetDelegate(state exec.RunState) exec.GetDelegate { 34 return NewGetDelegate(delegate.build, delegate.plan.ID, state, clock.NewClock(), delegate.policyChecker) 35 } 36 37 func (delegate DelegateFactory) PutDelegate(state exec.RunState) exec.PutDelegate { 38 return NewPutDelegate(delegate.build, delegate.plan.ID, state, clock.NewClock(), delegate.policyChecker) 39 } 40 41 func (delegate DelegateFactory) TaskDelegate(state exec.RunState) exec.TaskDelegate { 42 return NewTaskDelegate(delegate.build, delegate.plan.ID, state, clock.NewClock(), delegate.policyChecker) 43 } 44 45 func (delegate DelegateFactory) CheckDelegate(state exec.RunState) exec.CheckDelegate { 46 return NewCheckDelegate(delegate.build, delegate.plan, state, clock.NewClock(), delegate.rateLimiter, delegate.policyChecker) 47 } 48 49 func (delegate DelegateFactory) BuildStepDelegate(state exec.RunState) exec.BuildStepDelegate { 50 return NewBuildStepDelegate(delegate.build, delegate.plan.ID, state, clock.NewClock(), delegate.policyChecker) 51 } 52 53 func (delegate DelegateFactory) SetPipelineStepDelegate(state exec.RunState) exec.SetPipelineStepDelegate { 54 return NewSetPipelineStepDelegate(delegate.build, delegate.plan.ID, state, clock.NewClock()) 55 }