()
| 802 | } |
| 803 | |
| 804 | func (r *sampleRing) samples() []chunks.Sample { |
| 805 | res := make([]chunks.Sample, r.l) |
| 806 | |
| 807 | k := r.f + r.l |
| 808 | var j int |
| 809 | |
| 810 | switch r.bufInUse { |
| 811 | case iBuf: |
| 812 | if k > len(r.iBuf) { |
| 813 | k = len(r.iBuf) |
| 814 | j = r.l - k + r.f |
| 815 | } |
| 816 | n := copy(res, r.iBuf[r.f:k]) |
| 817 | copy(res[n:], r.iBuf[:j]) |
| 818 | case fBuf: |
| 819 | if k > len(r.fBuf) { |
| 820 | k = len(r.fBuf) |
| 821 | j = r.l - k + r.f |
| 822 | } |
| 823 | resF := make([]fSample, r.l) |
| 824 | n := copy(resF, r.fBuf[r.f:k]) |
| 825 | copy(resF[n:], r.fBuf[:j]) |
| 826 | for i, s := range resF { |
| 827 | res[i] = s |
| 828 | } |
| 829 | case hBuf: |
| 830 | if k > len(r.hBuf) { |
| 831 | k = len(r.hBuf) |
| 832 | j = r.l - k + r.f |
| 833 | } |
| 834 | resH := make([]hSample, r.l) |
| 835 | n := copy(resH, r.hBuf[r.f:k]) |
| 836 | copy(resH[n:], r.hBuf[:j]) |
| 837 | for i, s := range resH { |
| 838 | res[i] = s |
| 839 | } |
| 840 | case fhBuf: |
| 841 | if k > len(r.fhBuf) { |
| 842 | k = len(r.fhBuf) |
| 843 | j = r.l - k + r.f |
| 844 | } |
| 845 | resFH := make([]fhSample, r.l) |
| 846 | n := copy(resFH, r.fhBuf[r.f:k]) |
| 847 | copy(resFH[n:], r.fhBuf[:j]) |
| 848 | for i, s := range resFH { |
| 849 | res[i] = s |
| 850 | } |
| 851 | } |
| 852 | |
| 853 | return res |
| 854 | } |
no outgoing calls