| /* |
| * |
| * Copyright 2014 gRPC authors. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| */ |
| |
| package grpc |
| |
| import ( |
| "google.golang.org/grpc/encoding" |
| _ "google.golang.org/grpc/encoding/proto" // to register the Codec for "proto" |
| ) |
| |
| // baseCodec contains the functionality of both Codec and encoding.Codec, but |
| // omits the name/string, which vary between the two and are not needed for |
| // anything besides the registry in the encoding package. |
| type baseCodec interface { |
| Marshal(v interface{}) ([]byte, error) |
| Unmarshal(data []byte, v interface{}) error |
| } |
| |
| var _ baseCodec = Codec(nil) |
| var _ baseCodec = encoding.Codec(nil) |
| |
| // Codec defines the interface gRPC uses to encode and decode messages. |
| // Note that implementations of this interface must be thread safe; |
| // a Codec's methods can be called from concurrent goroutines. |
| // |
| // Deprecated: use encoding.Codec instead. |
| type Codec interface { |
| // Marshal returns the wire format of v. |
| Marshal(v interface{}) ([]byte, error) |
| // Unmarshal parses the wire format into v. |
| Unmarshal(data []byte, v interface{}) error |
| // String returns the name of the Codec implementation. This is unused by |
| // gRPC. |
| String() string |
| } |