MCPcopy
hub / github.com/micro/go-micro / Write

Method Write

client/rpc_codec.go:176–219  ·  view source on GitHub ↗
(message *codec.Message, body interface{})

Source from the content-addressed store, hash-verified

174}
175
176func (c *rpcCodec) Write(message *codec.Message, body interface{}) error {
177 c.buf.wbuf.Reset()
178
179 // create header
180 if message.Header == nil {
181 message.Header = map[string]string{}
182 }
183
184 // copy original header
185 for k, v := range c.req.Header {
186 message.Header[k] = v
187 }
188
189 // set the mucp headers
190 setHeaders(message, c.stream)
191
192 // if body is bytes Frame don't encode
193 if body != nil {
194 if b, ok := body.(*raw.Frame); ok {
195 // set body
196 message.Body = b.Data
197 } else {
198 // write to codec
199 if err := c.codec.Write(message, body); err != nil {
200 return errors.InternalServerError("go.micro.client.codec", err.Error())
201 }
202 // set body
203 message.Body = c.buf.wbuf.Bytes()
204 }
205 }
206
207 // create new transport message
208 msg := transport.Message{
209 Header: message.Header,
210 Body: message.Body,
211 }
212
213 // send the request
214 if err := c.client.Send(&msg); err != nil {
215 return errors.InternalServerError("go.micro.client.transport", err.Error())
216 }
217
218 return nil
219}
220
221func (c *rpcCodec) ReadHeader(msg *codec.Message, r codec.MessageType) error {
222 var tm transport.Message

Callers

nothing calls this directly

Calls 7

InternalServerErrorFunction · 0.92
setHeadersFunction · 0.70
ResetMethod · 0.65
WriteMethod · 0.65
ErrorMethod · 0.65
BytesMethod · 0.65
SendMethod · 0.65

Tested by

no test coverage detected