mirror of
				https://github.com/Telecominfraproject/wlan-cloud-lib-cppkafka.git
				synced 2025-11-03 20:18:06 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			142 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef CPPKAFKA_GROUP_INFORMATION_H
 | 
						|
#define CPPKAFKA_GROUP_INFORMATION_H
 | 
						|
 | 
						|
#include <vector>
 | 
						|
#include <cstdint>
 | 
						|
#include "macros.h"
 | 
						|
#include "metadata.h"
 | 
						|
#include "error.h"
 | 
						|
#include "topic_partition_list.h"
 | 
						|
 | 
						|
namespace cppkafka {
 | 
						|
 | 
						|
/**
 | 
						|
 * \brief Parses the member assignment information
 | 
						|
 *
 | 
						|
 * This class parses the data in GroupMemberInformation::get_member_assignment.
 | 
						|
 */
 | 
						|
class CPPKAFKA_API MemberAssignmentInformation {
 | 
						|
public:
 | 
						|
    /**
 | 
						|
     * Constructs an instance
 | 
						|
     */
 | 
						|
    MemberAssignmentInformation(const std::vector<uint8_t>& data);
 | 
						|
 | 
						|
    /**
 | 
						|
     * Gets the version
 | 
						|
     */
 | 
						|
    uint16_t get_version() const;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Gets the topic/partition assignment
 | 
						|
     */
 | 
						|
    const TopicPartitionList& get_topic_partitions() const;
 | 
						|
private:
 | 
						|
    uint16_t version_;
 | 
						|
    TopicPartitionList topic_partitions_;
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
 * \brief Represents the information about a specific consumer group member
 | 
						|
 */
 | 
						|
class CPPKAFKA_API GroupMemberInformation {
 | 
						|
public:
 | 
						|
    /**
 | 
						|
     * Constructs an instance using the provided information
 | 
						|
     *
 | 
						|
     * \param info The information pointer
 | 
						|
     */
 | 
						|
    GroupMemberInformation(const rd_kafka_group_member_info& info);
 | 
						|
 | 
						|
    /**
 | 
						|
     * Gets the member id
 | 
						|
     */
 | 
						|
    const std::string& get_member_id() const;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Gets the client id
 | 
						|
     */
 | 
						|
    const std::string& get_client_id() const;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Gets the client host
 | 
						|
     */
 | 
						|
    const std::string& get_client_host() const;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Gets the member metadata
 | 
						|
     */
 | 
						|
    const std::vector<uint8_t>& get_member_metadata() const;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Gets the member assignment
 | 
						|
     */
 | 
						|
    const std::vector<uint8_t>& get_member_assignment() const;
 | 
						|
private:
 | 
						|
    std::string member_id_;
 | 
						|
    std::string client_id_;
 | 
						|
    std::string client_host_;
 | 
						|
    std::vector<uint8_t> member_metadata_;
 | 
						|
    std::vector<uint8_t> member_assignment_;
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
 * \brief Represents the information about a specific consumer group
 | 
						|
 */
 | 
						|
class CPPKAFKA_API GroupInformation {
 | 
						|
public:
 | 
						|
    /**
 | 
						|
     * Constructs an instance using the provided information.
 | 
						|
     *
 | 
						|
     * \param info The information pointer
 | 
						|
     */
 | 
						|
    GroupInformation(const rd_kafka_group_info& info);
 | 
						|
 | 
						|
    /**
 | 
						|
     * Gets the broker metadata
 | 
						|
     */
 | 
						|
    const BrokerMetadata& get_broker() const;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Gets the group name
 | 
						|
     */
 | 
						|
    const std::string& get_name() const;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Gets the broker-originated error
 | 
						|
     */
 | 
						|
    Error get_error() const;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Gets the group state
 | 
						|
     */
 | 
						|
    const std::string& get_state() const;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Gets the group protocol type
 | 
						|
     */
 | 
						|
    const std::string& get_protocol_type() const;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Gets the group protocol
 | 
						|
     */
 | 
						|
    const std::string& get_protocol() const;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Gets the group members
 | 
						|
     */
 | 
						|
    const std::vector<GroupMemberInformation>& get_members() const;
 | 
						|
private:
 | 
						|
    BrokerMetadata broker_;
 | 
						|
    std::string name_;
 | 
						|
    Error error_;
 | 
						|
    std::string state_;
 | 
						|
    std::string protocol_type_;
 | 
						|
    std::string protocol_;
 | 
						|
    std::vector<GroupMemberInformation> members_;
 | 
						|
};
 | 
						|
 | 
						|
} // cppkafka
 | 
						|
 | 
						|
#endif // CPPKAFKA_GROUP_INFORMATION_H
 |