offset_fetch_request.go 809 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package sarama
  2. type OffsetFetchRequest struct {
  3. ConsumerGroup string
  4. partitions map[string][]int32
  5. }
  6. func (r *OffsetFetchRequest) encode(pe packetEncoder) error {
  7. err := pe.putString(r.ConsumerGroup)
  8. if err != nil {
  9. return err
  10. }
  11. err = pe.putArrayLength(len(r.partitions))
  12. if err != nil {
  13. return err
  14. }
  15. for topic, partitions := range r.partitions {
  16. err = pe.putString(topic)
  17. if err != nil {
  18. return err
  19. }
  20. pe.putInt32Array(partitions)
  21. }
  22. return nil
  23. }
  24. func (r *OffsetFetchRequest) key() int16 {
  25. return 9
  26. }
  27. func (r *OffsetFetchRequest) version() int16 {
  28. return 0
  29. }
  30. func (r *OffsetFetchRequest) AddPartition(topic string, partitionID int32) {
  31. if r.partitions == nil {
  32. r.partitions = make(map[string][]int32)
  33. }
  34. r.partitions[topic] = append(r.partitions[topic], partitionID)
  35. }