Beispiel #1
0
func (s *codec) writeHeaderData(header *rpc4.Header, data []byte) (err error) {
	if len(data) > 0 {
		header.PayloadPresent = proto.Bool(true)
	}

	if err = writeProto(s.w, header); err == nil && header.GetPayloadPresent() {
		err = writeData(s.w, data)
	}
	return
}
Beispiel #2
0
func (s *codec) ReadResponseHeader(resp *rpc.Response) error {
	if s.Shutdown {
		return rpc.ErrShutdown
	}

	var header rpc4.Header
	if err := readProto(s.r, &header); err != nil {
		return err
	}
	if header.GetMethod() == "" {
		return fmt.Errorf("header missing method: %s", header)
	}

	resp.ServiceMethod = header.GetMethod()
	resp.Seq = header.GetSequence()

	s.responsePayload = header.GetPayloadPresent()
	return nil
}