Documentation

Overview

    Package codec is an interface for encoding messages

    Index

    Constants

    This section is empty.

    Variables

    View Source
    var (
    	ErrInvalidMessage = errors.New("invalid message")
    )

    Functions

    This section is empty.

    Types

    type Codec

    type Codec interface {
    	Reader
    	Writer
    	Close() error
    	String() string
    }

      Codec encodes/decodes various types of messages used within go-micro. ReadHeader and ReadBody are called in pairs to read requests/responses from the connection. Close is called when finished with the connection. ReadBody may be called with a nil argument to force the body to be read and discarded.

      type Marshaler

      type Marshaler interface {
      	Marshal(interface{}) ([]byte, error)
      	Unmarshal([]byte, interface{}) error
      	String() string
      }

        Marshaler is a simple encoding interface used for the broker/transport where headers are not supported by the underlying implementation.

        type Message

        type Message struct {
        	Id       string
        	Type     MessageType
        	Target   string
        	Method   string
        	Endpoint string
        	Error    string
        
        	// The values read from the socket
        	Header map[string]string
        	Body   []byte
        }

          Message represents detailed information about the communication, likely followed by the body. In the case of an error, body may be nil.

          type MessageType

          type MessageType int
          const (
          	Error MessageType = iota
          	Request
          	Response
          	Event
          )

          type NewCodec

          type NewCodec func(io.ReadWriteCloser) Codec

            Takes in a connection/buffer and returns a new Codec

            type Reader

            type Reader interface {
            	ReadHeader(*Message, MessageType) error
            	ReadBody(interface{}) error
            }

            type Writer

            type Writer interface {
            	Write(*Message, interface{}) error
            }

            Source Files

            Directories

            Path Synopsis
            Package bytes provides a bytes codec which does not encode or decode anything
            Package bytes provides a bytes codec which does not encode or decode anything
            Package grpc provides a grpc codec
            Package grpc provides a grpc codec
            Package json provides a json codec
            Package json provides a json codec
            Package jsonrpc provides a json-rpc 1.0 codec
            Package jsonrpc provides a json-rpc 1.0 codec
            Package proto provides a proto codec
            Package proto provides a proto codec
            Protorpc provides a net/rpc proto-rpc codec.
            Protorpc provides a net/rpc proto-rpc codec.
            Package text reads any text/* content-type
            Package text reads any text/* content-type