Search in sources :

Example 46 with Struct

use of org.apache.kafka.common.protocol.types.Struct in project kafka by apache.

the class StopReplicaResponse method toStruct.

@Override
protected Struct toStruct(short version) {
    Struct struct = new Struct(ApiKeys.STOP_REPLICA.responseSchema(version));
    List<Struct> responseDatas = new ArrayList<>(responses.size());
    for (Map.Entry<TopicPartition, Errors> response : responses.entrySet()) {
        Struct partitionData = struct.instance(PARTITIONS_KEY_NAME);
        TopicPartition partition = response.getKey();
        partitionData.set(PARTITIONS_TOPIC_KEY_NAME, partition.topic());
        partitionData.set(PARTITIONS_PARTITION_KEY_NAME, partition.partition());
        partitionData.set(PARTITIONS_ERROR_CODE_KEY_NAME, response.getValue().code());
        responseDatas.add(partitionData);
    }
    struct.set(PARTITIONS_KEY_NAME, responseDatas.toArray());
    struct.set(ERROR_CODE_KEY_NAME, error.code());
    return struct;
}
Also used : Errors(org.apache.kafka.common.protocol.Errors) TopicPartition(org.apache.kafka.common.TopicPartition) ArrayList(java.util.ArrayList) Map(java.util.Map) HashMap(java.util.HashMap) Struct(org.apache.kafka.common.protocol.types.Struct)

Example 47 with Struct

use of org.apache.kafka.common.protocol.types.Struct in project kafka by apache.

the class UpdateMetadataResponse method toStruct.

@Override
protected Struct toStruct(short version) {
    Struct struct = new Struct(ApiKeys.UPDATE_METADATA_KEY.responseSchema(version));
    struct.set(ERROR_CODE_KEY_NAME, error.code());
    return struct;
}
Also used : Struct(org.apache.kafka.common.protocol.types.Struct)

Example 48 with Struct

use of org.apache.kafka.common.protocol.types.Struct in project kafka by apache.

the class DeleteTopicsRequest method toStruct.

@Override
protected Struct toStruct() {
    Struct struct = new Struct(ApiKeys.DELETE_TOPICS.requestSchema(version()));
    struct.set(TOPICS_KEY_NAME, topics.toArray());
    struct.set(TIMEOUT_KEY_NAME, timeout);
    return struct;
}
Also used : Struct(org.apache.kafka.common.protocol.types.Struct)

Example 49 with Struct

use of org.apache.kafka.common.protocol.types.Struct in project kafka by apache.

the class DescribeGroupsResponse method toStruct.

@Override
protected Struct toStruct(short version) {
    Struct struct = new Struct(ApiKeys.DESCRIBE_GROUPS.responseSchema(version));
    List<Struct> groupStructs = new ArrayList<>();
    for (Map.Entry<String, GroupMetadata> groupEntry : groups.entrySet()) {
        Struct groupStruct = struct.instance(GROUPS_KEY_NAME);
        GroupMetadata group = groupEntry.getValue();
        groupStruct.set(GROUP_ID_KEY_NAME, groupEntry.getKey());
        groupStruct.set(ERROR_CODE_KEY_NAME, group.error.code());
        groupStruct.set(GROUP_STATE_KEY_NAME, group.state);
        groupStruct.set(PROTOCOL_TYPE_KEY_NAME, group.protocolType);
        groupStruct.set(PROTOCOL_KEY_NAME, group.protocol);
        List<Struct> membersList = new ArrayList<>();
        for (GroupMember member : group.members) {
            Struct memberStruct = groupStruct.instance(MEMBERS_KEY_NAME);
            memberStruct.set(MEMBER_ID_KEY_NAME, member.memberId);
            memberStruct.set(CLIENT_ID_KEY_NAME, member.clientId);
            memberStruct.set(CLIENT_HOST_KEY_NAME, member.clientHost);
            memberStruct.set(MEMBER_METADATA_KEY_NAME, member.memberMetadata);
            memberStruct.set(MEMBER_ASSIGNMENT_KEY_NAME, member.memberAssignment);
            membersList.add(memberStruct);
        }
        groupStruct.set(MEMBERS_KEY_NAME, membersList.toArray());
        groupStructs.add(groupStruct);
    }
    struct.set(GROUPS_KEY_NAME, groupStructs.toArray());
    return struct;
}
Also used : ArrayList(java.util.ArrayList) Map(java.util.Map) HashMap(java.util.HashMap) Struct(org.apache.kafka.common.protocol.types.Struct)

Example 50 with Struct

use of org.apache.kafka.common.protocol.types.Struct in project kafka by apache.

the class FetchRequest method toStruct.

@Override
protected Struct toStruct() {
    short version = version();
    Struct struct = new Struct(ApiKeys.FETCH.requestSchema(version));
    List<TopicAndPartitionData<PartitionData>> topicsData = TopicAndPartitionData.batchByTopic(fetchData);
    struct.set(REPLICA_ID_KEY_NAME, replicaId);
    struct.set(MAX_WAIT_KEY_NAME, maxWait);
    struct.set(MIN_BYTES_KEY_NAME, minBytes);
    if (version >= 3)
        struct.set(MAX_BYTES_KEY_NAME, maxBytes);
    List<Struct> topicArray = new ArrayList<>();
    for (TopicAndPartitionData<PartitionData> topicEntry : topicsData) {
        Struct topicData = struct.instance(TOPICS_KEY_NAME);
        topicData.set(TOPIC_KEY_NAME, topicEntry.topic);
        List<Struct> partitionArray = new ArrayList<>();
        for (Map.Entry<Integer, PartitionData> partitionEntry : topicEntry.partitions.entrySet()) {
            PartitionData fetchPartitionData = partitionEntry.getValue();
            Struct partitionData = topicData.instance(PARTITIONS_KEY_NAME);
            partitionData.set(PARTITION_KEY_NAME, partitionEntry.getKey());
            partitionData.set(FETCH_OFFSET_KEY_NAME, fetchPartitionData.offset);
            partitionData.set(MAX_BYTES_KEY_NAME, fetchPartitionData.maxBytes);
            partitionArray.add(partitionData);
        }
        topicData.set(PARTITIONS_KEY_NAME, partitionArray.toArray());
        topicArray.add(topicData);
    }
    struct.set(TOPICS_KEY_NAME, topicArray.toArray());
    return struct;
}
Also used : ArrayList(java.util.ArrayList) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map) Struct(org.apache.kafka.common.protocol.types.Struct)

Aggregations

Struct (org.apache.kafka.common.protocol.types.Struct)63 ArrayList (java.util.ArrayList)32 Map (java.util.Map)22 HashMap (java.util.HashMap)19 ByteBuffer (java.nio.ByteBuffer)18 TopicPartition (org.apache.kafka.common.TopicPartition)10 Test (org.junit.Test)5 List (java.util.List)4 ByteBufferSend (org.apache.kafka.common.network.ByteBufferSend)4 Errors (org.apache.kafka.common.protocol.Errors)4 LinkedHashMap (java.util.LinkedHashMap)3 Node (org.apache.kafka.common.Node)2 Send (org.apache.kafka.common.network.Send)2 ApiKeys (org.apache.kafka.common.protocol.ApiKeys)2 ArrayOf (org.apache.kafka.common.protocol.types.ArrayOf)2 Field (org.apache.kafka.common.protocol.types.Field)2 Schema (org.apache.kafka.common.protocol.types.Schema)2 ResponseHeader (org.apache.kafka.common.requests.ResponseHeader)2 Subscription (org.apache.kafka.clients.consumer.internals.PartitionAssignor.Subscription)1 MultiSend (org.apache.kafka.common.network.MultiSend)1