| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- package sarama
- type PartitionMetadata struct {
- Err KError
- ID int32
- Leader int32
- Replicas []int32
- Isr []int32
- }
- func (pm *PartitionMetadata) decode(pd packetDecoder) (err error) {
- tmp, err := pd.getInt16()
- if err != nil {
- return err
- }
- pm.Err = KError(tmp)
- pm.ID, err = pd.getInt32()
- if err != nil {
- return err
- }
- pm.Leader, err = pd.getInt32()
- if err != nil {
- return err
- }
- pm.Replicas, err = pd.getInt32Array()
- if err != nil {
- return err
- }
- pm.Isr, err = pd.getInt32Array()
- if err != nil {
- return err
- }
- return nil
- }
- type TopicMetadata struct {
- Err KError
- Name string
- Partitions []*PartitionMetadata
- }
- func (tm *TopicMetadata) decode(pd packetDecoder) (err error) {
- tmp, err := pd.getInt16()
- if err != nil {
- return err
- }
- tm.Err = KError(tmp)
- tm.Name, err = pd.getString()
- if err != nil {
- return err
- }
- n, err := pd.getArrayLength()
- if err != nil {
- return err
- }
- tm.Partitions = make([]*PartitionMetadata, n)
- for i := 0; i < n; i++ {
- tm.Partitions[i] = new(PartitionMetadata)
- err = tm.Partitions[i].decode(pd)
- if err != nil {
- return err
- }
- }
- return nil
- }
- type MetadataResponse struct {
- Brokers []*Broker
- Topics []*TopicMetadata
- }
- func (m *MetadataResponse) decode(pd packetDecoder) (err error) {
- n, err := pd.getArrayLength()
- if err != nil {
- return err
- }
- m.Brokers = make([]*Broker, n)
- for i := 0; i < n; i++ {
- m.Brokers[i] = new(Broker)
- err = m.Brokers[i].decode(pd)
- if err != nil {
- return err
- }
- }
- n, err = pd.getArrayLength()
- if err != nil {
- return err
- }
- m.Topics = make([]*TopicMetadata, n)
- for i := 0; i < n; i++ {
- m.Topics[i] = new(TopicMetadata)
- err = m.Topics[i].decode(pd)
- if err != nil {
- return err
- }
- }
- return nil
- }
|