MCPcopy Index your code
hub / github.com/koding/kite / Closer

Function Closer

kite.go:495–524  ·  view source on GitHub ↗

Closer returns a io.Closer that can be used to close all the kites given by the generic argument. The kites is expected to be one of: - *kite.Kite - []*kite.Kite - *kite.Client - []*kite.Client If the kites argument is a slice and at least one of the kites returns error on Close, the Close method

(kites interface{})

Source from the content-addressed store, hash-verified

493// [0] - https://github.com/koding/kite/issues/183
494//
495func Closer(kites interface{}) io.Closer {
496 switch k := kites.(type) {
497 case *Kite:
498 return closerFunc(func() []error {
499 k.Close()
500 return nil
501 })
502 case []*Kite:
503 return closerFunc(func() []error {
504 for _, k := range k {
505 k.Close()
506 }
507 return nil
508 })
509 case *Client:
510 return closerFunc(func() []error {
511 k.Close()
512 return nil
513 })
514 case []*Client:
515 return closerFunc(func() []error {
516 for _, c := range k {
517 c.Close()
518 }
519 return nil
520 })
521 default:
522 panic(fmt.Errorf("unrecognized type passed to Close %T", kites))
523 }
524}
525
526// Close is a wrapper for Closer that calls a Close on it.
527func Close(kites interface{}) error {

Callers 1

CloseFunction · 0.85

Calls 2

closerFuncFuncType · 0.85
CloseMethod · 0.45

Tested by

no test coverage detected