librdkafka
The Apache Kafka C/C++ client library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
rdkafkacpp.h File Reference

Apache Kafka C/C++ consumer and producer client library. More...

Go to the source code of this file.

Data Structures

class  RdKafka::Error
 The Error class is used as a return value from APIs to propagate an error. The error consists of an error code which is to be used programatically, an error string for showing to the user, and various error flags that can be used programmatically to decide how to handle the error; e.g., should the operation be retried, was it a fatal error, etc. More...
 
class  RdKafka::DeliveryReportCb
 Delivery Report callback class. More...
 
class  RdKafka::OAuthBearerTokenRefreshCb
 SASL/OAUTHBEARER token refresh callback class. More...
 
class  RdKafka::PartitionerCb
 Partitioner callback class. More...
 
class  RdKafka::PartitionerKeyPointerCb
 Variant partitioner with key pointer. More...
 
class  RdKafka::EventCb
 Event callback class. More...
 
class  RdKafka::Event
 Event object class as passed to the EventCb callback. More...
 
class  RdKafka::ConsumeCb
 Consume callback class. More...
 
class  RdKafka::RebalanceCb
 KafkaConsumer: Rebalance callback class More...
 
class  RdKafka::OffsetCommitCb
 Offset Commit callback class. More...
 
class  RdKafka::SslCertificateVerifyCb
 SSL broker certificate verification class. More...
 
class  RdKafka::SocketCb
 Portability: SocketCb callback class More...
 
class  RdKafka::OpenCb
 Portability: OpenCb callback class More...
 
class  RdKafka::Conf
 Configuration interface. More...
 
class  RdKafka::Handle
 Base handle, super class for specific clients. More...
 
class  RdKafka::TopicPartition
 Topic+Partition. More...
 
class  RdKafka::Topic
 Topic handle. More...
 
class  RdKafka::MessageTimestamp
 Message timestamp object. More...
 
class  RdKafka::Headers
 Headers object. More...
 
class  RdKafka::Headers::Header
 Header object. More...
 
class  RdKafka::Message
 Message object. More...
 
class  RdKafka::Queue
 Queue interface. More...
 
class  RdKafka::ConsumerGroupMetadata
 ConsumerGroupMetadata holds a consumer instance's group metadata state. More...
 
class  RdKafka::KafkaConsumer
 High-level KafkaConsumer (for brokers 0.9 and later) More...
 
class  RdKafka::Consumer
 Simple Consumer (legacy) More...
 
class  RdKafka::Producer
 Producer. More...
 
class  RdKafka::BrokerMetadata
 Metadata: Broker information. More...
 
class  RdKafka::PartitionMetadata
 Metadata: Partition information. More...
 
class  RdKafka::TopicMetadata
 Metadata: Topic information. More...
 
class  RdKafka::Metadata
 Metadata container. More...
 

Macros

#define ERR_GROUP_LOAD_IN_PROGRESS   ERR_COORDINATOR_LOAD_IN_PROGRESS
 
#define ERR_GROUP_COORDINATOR_NOT_AVAILABLE   ERR_COORDINATOR_NOT_AVAILABLE
 
#define ERR_NOT_COORDINATOR_FOR_GROUP   ERR_NOT_COORDINATOR
 

Miscellaneous APIs

#define RD_KAFKA_VERSION   0x010900ff
 librdkafka version More...
 
RD_EXPORT int RdKafka::version ()
 Returns the librdkafka version as integer. More...
 
RD_EXPORT std::string RdKafka::version_str ()
 Returns the librdkafka version as string.
 
RD_EXPORT std::string RdKafka::get_debug_contexts ()
 Returns a CSV list of the supported debug contexts for use with Conf::Set("debug", ..).
 
RD_EXPORT int RdKafka::wait_destroyed (int timeout_ms)
 Wait for all rd_kafka_t objects to be destroyed. More...
 
RD_EXPORT void * RdKafka::mem_malloc (size_t size)
 Allocate memory using the same allocator librdkafka uses. More...
 
RD_EXPORT void RdKafka::mem_free (void *ptr)
 Free pointer returned by librdkafka. More...
 

Constants, errors, types

enum  ErrorCode {
  RdKafka::ERR__BEGIN = -200,
  RdKafka::ERR__BAD_MSG = -199,
  RdKafka::ERR__BAD_COMPRESSION = -198,
  RdKafka::ERR__DESTROY = -197,
  RdKafka::ERR__FAIL = -196,
  RdKafka::ERR__TRANSPORT = -195,
  RdKafka::ERR__CRIT_SYS_RESOURCE = -194,
  RdKafka::ERR__RESOLVE = -193,
  RdKafka::ERR__MSG_TIMED_OUT = -192,
  RdKafka::ERR__PARTITION_EOF = -191,
  RdKafka::ERR__UNKNOWN_PARTITION = -190,
  RdKafka::ERR__FS = -189,
  RdKafka::ERR__UNKNOWN_TOPIC = -188,
  RdKafka::ERR__ALL_BROKERS_DOWN = -187,
  RdKafka::ERR__INVALID_ARG = -186,
  RdKafka::ERR__TIMED_OUT = -185,
  RdKafka::ERR__QUEUE_FULL = -184,
  RdKafka::ERR__ISR_INSUFF = -183,
  RdKafka::ERR__NODE_UPDATE = -182,
  RdKafka::ERR__SSL = -181,
  RdKafka::ERR__WAIT_COORD = -180,
  RdKafka::ERR__UNKNOWN_GROUP = -179,
  RdKafka::ERR__IN_PROGRESS = -178,
  RdKafka::ERR__PREV_IN_PROGRESS = -177,
  RdKafka::ERR__EXISTING_SUBSCRIPTION = -176,
  RdKafka::ERR__ASSIGN_PARTITIONS = -175,
  RdKafka::ERR__REVOKE_PARTITIONS = -174,
  RdKafka::ERR__CONFLICT = -173,
  RdKafka::ERR__STATE = -172,
  RdKafka::ERR__UNKNOWN_PROTOCOL = -171,
  RdKafka::ERR__NOT_IMPLEMENTED = -170,
  RdKafka::ERR__AUTHENTICATION = -169,
  RdKafka::ERR__NO_OFFSET = -168,
  RdKafka::ERR__OUTDATED = -167,
  RdKafka::ERR__TIMED_OUT_QUEUE = -166,
  RdKafka::ERR__UNSUPPORTED_FEATURE = -165,
  RdKafka::ERR__WAIT_CACHE = -164,
  RdKafka::ERR__INTR = -163,
  RdKafka::ERR__KEY_SERIALIZATION = -162,
  RdKafka::ERR__VALUE_SERIALIZATION = -161,
  RdKafka::ERR__KEY_DESERIALIZATION = -160,
  RdKafka::ERR__VALUE_DESERIALIZATION = -159,
  RdKafka::ERR__PARTIAL = -158,
  RdKafka::ERR__READ_ONLY = -157,
  RdKafka::ERR__NOENT = -156,
  RdKafka::ERR__UNDERFLOW = -155,
  RdKafka::ERR__INVALID_TYPE = -154,
  RdKafka::ERR__RETRY = -153,
  RdKafka::ERR__PURGE_QUEUE = -152,
  RdKafka::ERR__PURGE_INFLIGHT = -151,
  RdKafka::ERR__FATAL = -150,
  RdKafka::ERR__INCONSISTENT = -149,
  RdKafka::ERR__GAPLESS_GUARANTEE = -148,
  RdKafka::ERR__MAX_POLL_EXCEEDED = -147,
  RdKafka::ERR__UNKNOWN_BROKER = -146,
  RdKafka::ERR__NOT_CONFIGURED = -145,
  RdKafka::ERR__FENCED = -144,
  RdKafka::ERR__APPLICATION = -143,
  RdKafka::ERR__ASSIGNMENT_LOST = -142,
  RdKafka::ERR__NOOP = -141,
  RdKafka::ERR__AUTO_OFFSET_RESET = -140,
  RdKafka::ERR__END = -100,
  RdKafka::ERR_UNKNOWN = -1,
  RdKafka::ERR_NO_ERROR = 0,
  RdKafka::ERR_OFFSET_OUT_OF_RANGE = 1,
  RdKafka::ERR_INVALID_MSG = 2,
  RdKafka::ERR_UNKNOWN_TOPIC_OR_PART = 3,
  RdKafka::ERR_INVALID_MSG_SIZE = 4,
  RdKafka::ERR_LEADER_NOT_AVAILABLE = 5,
  RdKafka::ERR_NOT_LEADER_FOR_PARTITION = 6,
  RdKafka::ERR_REQUEST_TIMED_OUT = 7,
  RdKafka::ERR_BROKER_NOT_AVAILABLE = 8,
  RdKafka::ERR_REPLICA_NOT_AVAILABLE = 9,
  RdKafka::ERR_MSG_SIZE_TOO_LARGE = 10,
  RdKafka::ERR_STALE_CTRL_EPOCH = 11,
  RdKafka::ERR_OFFSET_METADATA_TOO_LARGE = 12,
  RdKafka::ERR_NETWORK_EXCEPTION = 13,
  RdKafka::ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
  RdKafka::ERR_COORDINATOR_NOT_AVAILABLE = 15,
  RdKafka::ERR_NOT_COORDINATOR = 16,
  RdKafka::ERR_TOPIC_EXCEPTION = 17,
  RdKafka::ERR_RECORD_LIST_TOO_LARGE = 18,
  RdKafka::ERR_NOT_ENOUGH_REPLICAS = 19,
  RdKafka::ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
  RdKafka::ERR_INVALID_REQUIRED_ACKS = 21,
  RdKafka::ERR_ILLEGAL_GENERATION = 22,
  RdKafka::ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
  RdKafka::ERR_INVALID_GROUP_ID = 24,
  RdKafka::ERR_UNKNOWN_MEMBER_ID = 25,
  RdKafka::ERR_INVALID_SESSION_TIMEOUT = 26,
  RdKafka::ERR_REBALANCE_IN_PROGRESS = 27,
  RdKafka::ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
  RdKafka::ERR_TOPIC_AUTHORIZATION_FAILED = 29,
  RdKafka::ERR_GROUP_AUTHORIZATION_FAILED = 30,
  RdKafka::ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
  RdKafka::ERR_INVALID_TIMESTAMP = 32,
  RdKafka::ERR_UNSUPPORTED_SASL_MECHANISM = 33,
  RdKafka::ERR_ILLEGAL_SASL_STATE = 34,
  RdKafka::ERR_UNSUPPORTED_VERSION = 35,
  RdKafka::ERR_TOPIC_ALREADY_EXISTS = 36,
  RdKafka::ERR_INVALID_PARTITIONS = 37,
  RdKafka::ERR_INVALID_REPLICATION_FACTOR = 38,
  RdKafka::ERR_INVALID_REPLICA_ASSIGNMENT = 39,
  RdKafka::ERR_INVALID_CONFIG = 40,
  RdKafka::ERR_NOT_CONTROLLER = 41,
  RdKafka::ERR_INVALID_REQUEST = 42,
  RdKafka::ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
  RdKafka::ERR_POLICY_VIOLATION = 44,
  RdKafka::ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
  RdKafka::ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
  RdKafka::ERR_INVALID_PRODUCER_EPOCH = 47,
  RdKafka::ERR_INVALID_TXN_STATE = 48,
  RdKafka::ERR_INVALID_PRODUCER_ID_MAPPING = 49,
  RdKafka::ERR_INVALID_TRANSACTION_TIMEOUT = 50,
  RdKafka::ERR_CONCURRENT_TRANSACTIONS = 51,
  RdKafka::ERR_TRANSACTION_COORDINATOR_FENCED = 52,
  RdKafka::ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
  RdKafka::ERR_SECURITY_DISABLED = 54,
  RdKafka::ERR_OPERATION_NOT_ATTEMPTED = 55,
  RdKafka::ERR_KAFKA_STORAGE_ERROR = 56,
  RdKafka::ERR_LOG_DIR_NOT_FOUND = 57,
  RdKafka::ERR_SASL_AUTHENTICATION_FAILED = 58,
  RdKafka::ERR_UNKNOWN_PRODUCER_ID = 59,
  RdKafka::ERR_REASSIGNMENT_IN_PROGRESS = 60,
  RdKafka::ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
  RdKafka::ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
  RdKafka::ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
  RdKafka::ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
  RdKafka::ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
  RdKafka::ERR_DELEGATION_TOKEN_EXPIRED = 66,
  RdKafka::ERR_INVALID_PRINCIPAL_TYPE = 67,
  RdKafka::ERR_NON_EMPTY_GROUP = 68,
  RdKafka::ERR_GROUP_ID_NOT_FOUND = 69,
  RdKafka::ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
  RdKafka::ERR_INVALID_FETCH_SESSION_EPOCH = 71,
  RdKafka::ERR_LISTENER_NOT_FOUND = 72,
  RdKafka::ERR_TOPIC_DELETION_DISABLED = 73,
  RdKafka::ERR_FENCED_LEADER_EPOCH = 74,
  RdKafka::ERR_UNKNOWN_LEADER_EPOCH = 75,
  RdKafka::ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
  RdKafka::ERR_STALE_BROKER_EPOCH = 77,
  RdKafka::ERR_OFFSET_NOT_AVAILABLE = 78,
  RdKafka::ERR_MEMBER_ID_REQUIRED = 79,
  RdKafka::ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
  RdKafka::ERR_GROUP_MAX_SIZE_REACHED = 81,
  RdKafka::ERR_FENCED_INSTANCE_ID = 82,
  RdKafka::ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
  RdKafka::ERR_ELECTION_NOT_NEEDED = 84,
  RdKafka::ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
  RdKafka::ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
  RdKafka::ERR_INVALID_RECORD = 87,
  RdKafka::ERR_UNSTABLE_OFFSET_COMMIT = 88,
  RdKafka::ERR_THROTTLING_QUOTA_EXCEEDED = 89,
  RdKafka::ERR_PRODUCER_FENCED = 90,
  RdKafka::ERR_RESOURCE_NOT_FOUND = 91,
  RdKafka::ERR_DUPLICATE_RESOURCE = 92,
  RdKafka::ERR_UNACCEPTABLE_CREDENTIAL = 93,
  RdKafka::ERR_INCONSISTENT_VOTER_SET = 94,
  RdKafka::ERR_INVALID_UPDATE_VERSION = 95,
  RdKafka::ERR_FEATURE_UPDATE_FAILED = 96,
  RdKafka::ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97
}
 Error codes. More...
 
enum  CertificateType {
  RdKafka::CERT_PUBLIC_KEY,
  RdKafka::CERT_PRIVATE_KEY,
  RdKafka::CERT_CA,
  CERT__CNT
}
 SSL certificate types.
 
enum  CertificateEncoding {
  RdKafka::CERT_ENC_PKCS12,
  RdKafka::CERT_ENC_DER,
  RdKafka::CERT_ENC_PEM,
  CERT_ENC__CNT
}
 SSL certificate encoding.
 
RD_EXPORT std::string RdKafka::err2str (RdKafka::ErrorCode err)
 Returns a human readable representation of a kafka error.
 

Detailed Description

Apache Kafka C/C++ consumer and producer client library.

rdkafkacpp.h contains the public C++ API for librdkafka. The API is documented in this file as comments prefixing the class, function, type, enum, define, etc. For more information, see the C interface in rdkafka.h and read the manual in INTRODUCTION.md. The C++ interface is STD C++ '03 compliant and adheres to the Google C++ Style Guide.

See also
For the C interface see rdkafka.h

Macro Definition Documentation

#define RD_KAFKA_VERSION   0x010900ff

librdkafka version

Interpreted as hex MM.mm.rr.xx:

  • MM = Major
  • mm = minor
  • rr = revision
  • xx = pre-release id (0xff is the final release)

E.g.: 0x000801ff = 0.8.1

Remarks
This value should only be used during compile time, for runtime checks of version use RdKafka::version()
#define ERR_GROUP_LOAD_IN_PROGRESS   ERR_COORDINATOR_LOAD_IN_PROGRESS

Group coordinator load in progress

#define ERR_GROUP_COORDINATOR_NOT_AVAILABLE   ERR_COORDINATOR_NOT_AVAILABLE

Group coordinator not available

#define ERR_NOT_COORDINATOR_FOR_GROUP   ERR_NOT_COORDINATOR

Not coordinator for group