(stream testgrpc.TestService_FullDuplexCallServer)
| 803 | } |
| 804 | |
| 805 | func (s *testServer) FullDuplexCall(stream testgrpc.TestService_FullDuplexCallServer) error { |
| 806 | if md, ok := metadata.FromIncomingContext(stream.Context()); ok { |
| 807 | if initialMetadata, ok := md[initialMetadataKey]; ok { |
| 808 | header := metadata.Pairs(initialMetadataKey, initialMetadata[0]) |
| 809 | stream.SendHeader(header) |
| 810 | } |
| 811 | if trailingMetadata, ok := md[trailingMetadataKey]; ok { |
| 812 | trailer := metadata.Pairs(trailingMetadataKey, trailingMetadata[0]) |
| 813 | stream.SetTrailer(trailer) |
| 814 | } |
| 815 | } |
| 816 | hasORCALock := false |
| 817 | for { |
| 818 | in, err := stream.Recv() |
| 819 | if err == io.EOF { |
| 820 | // read done. |
| 821 | return nil |
| 822 | } |
| 823 | if err != nil { |
| 824 | return err |
| 825 | } |
| 826 | st := in.GetResponseStatus() |
| 827 | if st != nil && st.Code != 0 { |
| 828 | return status.Error(codes.Code(st.Code), st.Message) |
| 829 | } |
| 830 | |
| 831 | if r, orcaData := s.metricsRecorder, in.GetOrcaOobReport(); r != nil && orcaData != nil { |
| 832 | // Transfer the request's OOB ORCA data to the server metrics recorder |
| 833 | // in the server, if present. |
| 834 | if !hasORCALock { |
| 835 | s.orcaMu.Lock() |
| 836 | defer s.orcaMu.Unlock() |
| 837 | hasORCALock = true |
| 838 | } |
| 839 | setORCAMetrics(r, orcaData) |
| 840 | } |
| 841 | |
| 842 | cs := in.GetResponseParameters() |
| 843 | for _, c := range cs { |
| 844 | if us := c.GetIntervalUs(); us > 0 { |
| 845 | time.Sleep(time.Duration(us) * time.Microsecond) |
| 846 | } |
| 847 | pl, err := serverNewPayload(in.GetResponseType(), c.GetSize()) |
| 848 | if err != nil { |
| 849 | return err |
| 850 | } |
| 851 | if err := stream.Send(&testpb.StreamingOutputCallResponse{ |
| 852 | Payload: pl, |
| 853 | }); err != nil { |
| 854 | return err |
| 855 | } |
| 856 | } |
| 857 | } |
| 858 | } |
| 859 | |
| 860 | func (s *testServer) HalfDuplexCall(stream testgrpc.TestService_HalfDuplexCallServer) error { |
| 861 | var msgBuf []*testpb.StreamingOutputCallRequest |
nothing calls this directly
no test coverage detected