mirror of https://github.com/k3s-io/k3s
ThirdPartyResourceCodec should implement streaming.Framer
Wrappers must proxy NewFrameReader|Writer for now (until we potentially refactor the codec factory to separate them).pull/6/head
parent
e81663c824
commit
a5ff573263
|
@ -33,6 +33,7 @@ import (
|
|||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/runtime/serializer/streaming"
|
||||
)
|
||||
|
||||
type thirdPartyObjectConverter struct {
|
||||
|
@ -202,6 +203,11 @@ type thirdPartyResourceDataCodec struct {
|
|||
kind string
|
||||
}
|
||||
|
||||
var (
|
||||
_ runtime.Codec = &thirdPartyResourceDataCodec{}
|
||||
_ streaming.Framer = &thirdPartyResourceDataCodec{}
|
||||
)
|
||||
|
||||
func NewCodec(codec runtime.Codec, kind string) runtime.Codec {
|
||||
return &thirdPartyResourceDataCodec{codec, kind}
|
||||
}
|
||||
|
@ -410,6 +416,24 @@ func (t *thirdPartyResourceDataCodec) EncodeToStream(obj runtime.Object, stream
|
|||
}
|
||||
}
|
||||
|
||||
// NewFrameWriter calls into the nested encoder to expose its framing
|
||||
func (c *thirdPartyResourceDataCodec) NewFrameWriter(w io.Writer) io.Writer {
|
||||
f, ok := c.delegate.(streaming.Framer)
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
return f.NewFrameWriter(w)
|
||||
}
|
||||
|
||||
// NewFrameReader calls into the nested decoder to expose its framing
|
||||
func (c *thirdPartyResourceDataCodec) NewFrameReader(r io.Reader) io.Reader {
|
||||
f, ok := c.delegate.(streaming.Framer)
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
return f.NewFrameReader(r)
|
||||
}
|
||||
|
||||
func NewObjectCreator(group, version string, delegate runtime.ObjectCreater) runtime.ObjectCreater {
|
||||
return &thirdPartyResourceDataCreator{group, version, delegate}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue