Make json/protobuf codecs
This commit is contained in:
		
							
								
								
									
										43
									
								
								codec/json/json.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								codec/json/json.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| // Package json provides a json codec | ||||
| package json | ||||
|  | ||||
| import ( | ||||
| 	"encoding/json" | ||||
| 	"io" | ||||
|  | ||||
| 	"github.com/micro/go-micro/codec" | ||||
| ) | ||||
|  | ||||
| type Codec struct { | ||||
| 	Conn    io.ReadWriteCloser | ||||
| 	Encoder *json.Encoder | ||||
| 	Decoder *json.Decoder | ||||
| } | ||||
|  | ||||
| func (c *Codec) ReadHeader(m *codec.Message, t codec.MessageType) error { | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (c *Codec) ReadBody(b interface{}) error { | ||||
| 	return c.Decoder.Decode(b) | ||||
| } | ||||
|  | ||||
| func (c *Codec) Write(m *codec.Message, b interface{}) error { | ||||
| 	return c.Encoder.Encode(b) | ||||
| } | ||||
|  | ||||
| func (c *Codec) Close() error { | ||||
| 	return c.Conn.Close() | ||||
| } | ||||
|  | ||||
| func (c *Codec) String() string { | ||||
| 	return "json" | ||||
| } | ||||
|  | ||||
| func NewCodec(c io.ReadWriteCloser) codec.Codec { | ||||
| 	return &Codec{ | ||||
| 		Conn:    c, | ||||
| 		Decoder: json.NewDecoder(c), | ||||
| 		Encoder: json.NewEncoder(c), | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user