github.com/ssdev-go/moby@v17.12.1-ce-rc2+incompatible/pkg/plugingetter/getter.go (about) 1 package plugingetter 2 3 import ( 4 "github.com/docker/docker/pkg/plugins" 5 ) 6 7 const ( 8 // Lookup doesn't update RefCount 9 Lookup = 0 10 // Acquire increments RefCount 11 Acquire = 1 12 // Release decrements RefCount 13 Release = -1 14 ) 15 16 // CompatPlugin is an abstraction to handle both v2(new) and v1(legacy) plugins. 17 type CompatPlugin interface { 18 Client() *plugins.Client 19 Name() string 20 BasePath() string 21 IsV1() bool 22 } 23 24 // CountedPlugin is a plugin which is reference counted. 25 type CountedPlugin interface { 26 Acquire() 27 Release() 28 CompatPlugin 29 } 30 31 // PluginGetter is the interface implemented by Store 32 type PluginGetter interface { 33 Get(name, capability string, mode int) (CompatPlugin, error) 34 GetAllByCap(capability string) ([]CompatPlugin, error) 35 GetAllManagedPluginsByCap(capability string) []CompatPlugin 36 Handle(capability string, callback func(string, *plugins.Client)) 37 }