123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- package opts // import "github.com/docker/docker/opts"
- import (
- "fmt"
- units "github.com/docker/go-units"
- )
- // UlimitOpt defines a map of Ulimits
- type UlimitOpt struct {
- values *map[string]*units.Ulimit
- }
- // NewUlimitOpt creates a new UlimitOpt
- func NewUlimitOpt(ref *map[string]*units.Ulimit) *UlimitOpt {
- if ref == nil {
- ref = &map[string]*units.Ulimit{}
- }
- return &UlimitOpt{ref}
- }
- // Set validates a Ulimit and sets its name as a key in UlimitOpt
- func (o *UlimitOpt) Set(val string) error {
- l, err := units.ParseUlimit(val)
- if err != nil {
- return err
- }
- (*o.values)[l.Name] = l
- return nil
- }
- // String returns Ulimit values as a string.
- func (o *UlimitOpt) String() string {
- var out []string
- for _, v := range *o.values {
- out = append(out, v.String())
- }
- return fmt.Sprintf("%v", out)
- }
- // GetList returns a slice of pointers to Ulimits.
- func (o *UlimitOpt) GetList() []*units.Ulimit {
- var ulimits []*units.Ulimit
- for _, v := range *o.values {
- ulimits = append(ulimits, v)
- }
- return ulimits
- }
- // Type returns the option type
- func (o *UlimitOpt) Type() string {
- return "ulimit"
- }
- // NamedUlimitOpt defines a named map of Ulimits
- type NamedUlimitOpt struct {
- name string
- UlimitOpt
- }
- var _ NamedOption = &NamedUlimitOpt{}
- // NewNamedUlimitOpt creates a new NamedUlimitOpt
- func NewNamedUlimitOpt(name string, ref *map[string]*units.Ulimit) *NamedUlimitOpt {
- if ref == nil {
- ref = &map[string]*units.Ulimit{}
- }
- return &NamedUlimitOpt{
- name: name,
- UlimitOpt: *NewUlimitOpt(ref),
- }
- }
- // Name returns the option name
- func (o *NamedUlimitOpt) Name() string {
- return o.name
- }
|