Commit a5ff5732 authored by Clayton Coleman's avatar Clayton Coleman

ThirdPartyResourceCodec should implement streaming.Framer

Wrappers must proxy NewFrameReader|Writer for now (until we potentially refactor the codec factory to separate them).
parent e81663c8
...@@ -33,6 +33,7 @@ import ( ...@@ -33,6 +33,7 @@ import (
"k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1" "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/runtime/serializer/streaming"
) )
type thirdPartyObjectConverter struct { type thirdPartyObjectConverter struct {
...@@ -202,6 +203,11 @@ type thirdPartyResourceDataCodec struct { ...@@ -202,6 +203,11 @@ type thirdPartyResourceDataCodec struct {
kind string kind string
} }
var (
_ runtime.Codec = &thirdPartyResourceDataCodec{}
_ streaming.Framer = &thirdPartyResourceDataCodec{}
)
func NewCodec(codec runtime.Codec, kind string) runtime.Codec { func NewCodec(codec runtime.Codec, kind string) runtime.Codec {
return &thirdPartyResourceDataCodec{codec, kind} return &thirdPartyResourceDataCodec{codec, kind}
} }
...@@ -410,6 +416,24 @@ func (t *thirdPartyResourceDataCodec) EncodeToStream(obj runtime.Object, stream ...@@ -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 { func NewObjectCreator(group, version string, delegate runtime.ObjectCreater) runtime.ObjectCreater {
return &thirdPartyResourceDataCreator{group, version, delegate} return &thirdPartyResourceDataCreator{group, version, delegate}
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment