29 #ifndef _RDKAFKACPP_H_
30 #define _RDKAFKACPP_H_
56 #include <sys/types.h>
63 #ifndef _SSIZE_T_DEFINED
64 #define _SSIZE_T_DEFINED
65 typedef SSIZE_T ssize_t;
69 #ifdef LIBRDKAFKA_STATICLIB
72 #ifdef LIBRDKAFKACPP_EXPORTS
73 #define RD_EXPORT __declspec(dllexport)
75 #define RD_EXPORT __declspec(dllimport)
87 struct rd_kafka_topic_s;
88 struct rd_kafka_message_s;
89 struct rd_kafka_conf_s;
90 struct rd_kafka_topic_conf_s;
114 #define RD_KAFKA_VERSION 0x010900ff
128 std::string version_str();
135 std::string get_debug_contexts();
147 int wait_destroyed(
int timeout_ms);
160 void *mem_malloc(
size_t size);
176 void mem_free(
void *ptr);
207 ERR__BAD_COMPRESSION = -198,
213 ERR__TRANSPORT = -195,
215 ERR__CRIT_SYS_RESOURCE = -194,
219 ERR__MSG_TIMED_OUT = -192,
224 ERR__PARTITION_EOF = -191,
226 ERR__UNKNOWN_PARTITION = -190,
230 ERR__UNKNOWN_TOPIC = -188,
232 ERR__ALL_BROKERS_DOWN = -187,
234 ERR__INVALID_ARG = -186,
236 ERR__TIMED_OUT = -185,
238 ERR__QUEUE_FULL = -184,
240 ERR__ISR_INSUFF = -183,
242 ERR__NODE_UPDATE = -182,
246 ERR__WAIT_COORD = -180,
248 ERR__UNKNOWN_GROUP = -179,
250 ERR__IN_PROGRESS = -178,
252 ERR__PREV_IN_PROGRESS = -177,
254 ERR__EXISTING_SUBSCRIPTION = -176,
256 ERR__ASSIGN_PARTITIONS = -175,
258 ERR__REVOKE_PARTITIONS = -174,
260 ERR__CONFLICT = -173,
264 ERR__UNKNOWN_PROTOCOL = -171,
266 ERR__NOT_IMPLEMENTED = -170,
268 ERR__AUTHENTICATION = -169,
270 ERR__NO_OFFSET = -168,
272 ERR__OUTDATED = -167,
274 ERR__TIMED_OUT_QUEUE = -166,
276 ERR__UNSUPPORTED_FEATURE = -165,
278 ERR__WAIT_CACHE = -164,
282 ERR__KEY_SERIALIZATION = -162,
284 ERR__VALUE_SERIALIZATION = -161,
286 ERR__KEY_DESERIALIZATION = -160,
288 ERR__VALUE_DESERIALIZATION = -159,
292 ERR__READ_ONLY = -157,
296 ERR__UNDERFLOW = -155,
298 ERR__INVALID_TYPE = -154,
302 ERR__PURGE_QUEUE = -152,
304 ERR__PURGE_INFLIGHT = -151,
308 ERR__INCONSISTENT = -149,
310 ERR__GAPLESS_GUARANTEE = -148,
312 ERR__MAX_POLL_EXCEEDED = -147,
314 ERR__UNKNOWN_BROKER = -146,
316 ERR__NOT_CONFIGURED = -145,
320 ERR__APPLICATION = -143,
322 ERR__ASSIGNMENT_LOST = -142,
326 ERR__AUTO_OFFSET_RESET = -140,
337 ERR_OFFSET_OUT_OF_RANGE = 1,
341 ERR_UNKNOWN_TOPIC_OR_PART = 3,
343 ERR_INVALID_MSG_SIZE = 4,
345 ERR_LEADER_NOT_AVAILABLE = 5,
347 ERR_NOT_LEADER_FOR_PARTITION = 6,
349 ERR_REQUEST_TIMED_OUT = 7,
351 ERR_BROKER_NOT_AVAILABLE = 8,
353 ERR_REPLICA_NOT_AVAILABLE = 9,
355 ERR_MSG_SIZE_TOO_LARGE = 10,
357 ERR_STALE_CTRL_EPOCH = 11,
359 ERR_OFFSET_METADATA_TOO_LARGE = 12,
361 ERR_NETWORK_EXCEPTION = 13,
363 ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
365 #define ERR_GROUP_LOAD_IN_PROGRESS ERR_COORDINATOR_LOAD_IN_PROGRESS
367 ERR_COORDINATOR_NOT_AVAILABLE = 15,
369 #define ERR_GROUP_COORDINATOR_NOT_AVAILABLE ERR_COORDINATOR_NOT_AVAILABLE
371 ERR_NOT_COORDINATOR = 16,
373 #define ERR_NOT_COORDINATOR_FOR_GROUP ERR_NOT_COORDINATOR
375 ERR_TOPIC_EXCEPTION = 17,
377 ERR_RECORD_LIST_TOO_LARGE = 18,
379 ERR_NOT_ENOUGH_REPLICAS = 19,
381 ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
383 ERR_INVALID_REQUIRED_ACKS = 21,
385 ERR_ILLEGAL_GENERATION = 22,
387 ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
389 ERR_INVALID_GROUP_ID = 24,
391 ERR_UNKNOWN_MEMBER_ID = 25,
393 ERR_INVALID_SESSION_TIMEOUT = 26,
395 ERR_REBALANCE_IN_PROGRESS = 27,
397 ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
399 ERR_TOPIC_AUTHORIZATION_FAILED = 29,
401 ERR_GROUP_AUTHORIZATION_FAILED = 30,
403 ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
405 ERR_INVALID_TIMESTAMP = 32,
407 ERR_UNSUPPORTED_SASL_MECHANISM = 33,
409 ERR_ILLEGAL_SASL_STATE = 34,
411 ERR_UNSUPPORTED_VERSION = 35,
413 ERR_TOPIC_ALREADY_EXISTS = 36,
415 ERR_INVALID_PARTITIONS = 37,
417 ERR_INVALID_REPLICATION_FACTOR = 38,
419 ERR_INVALID_REPLICA_ASSIGNMENT = 39,
421 ERR_INVALID_CONFIG = 40,
423 ERR_NOT_CONTROLLER = 41,
425 ERR_INVALID_REQUEST = 42,
427 ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
429 ERR_POLICY_VIOLATION = 44,
431 ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
433 ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
435 ERR_INVALID_PRODUCER_EPOCH = 47,
437 ERR_INVALID_TXN_STATE = 48,
440 ERR_INVALID_PRODUCER_ID_MAPPING = 49,
443 ERR_INVALID_TRANSACTION_TIMEOUT = 50,
446 ERR_CONCURRENT_TRANSACTIONS = 51,
450 ERR_TRANSACTION_COORDINATOR_FENCED = 52,
452 ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
454 ERR_SECURITY_DISABLED = 54,
456 ERR_OPERATION_NOT_ATTEMPTED = 55,
458 ERR_KAFKA_STORAGE_ERROR = 56,
460 ERR_LOG_DIR_NOT_FOUND = 57,
462 ERR_SASL_AUTHENTICATION_FAILED = 58,
464 ERR_UNKNOWN_PRODUCER_ID = 59,
466 ERR_REASSIGNMENT_IN_PROGRESS = 60,
468 ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
470 ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
472 ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
474 ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
476 ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
478 ERR_DELEGATION_TOKEN_EXPIRED = 66,
480 ERR_INVALID_PRINCIPAL_TYPE = 67,
482 ERR_NON_EMPTY_GROUP = 68,
484 ERR_GROUP_ID_NOT_FOUND = 69,
486 ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
488 ERR_INVALID_FETCH_SESSION_EPOCH = 71,
490 ERR_LISTENER_NOT_FOUND = 72,
492 ERR_TOPIC_DELETION_DISABLED = 73,
494 ERR_FENCED_LEADER_EPOCH = 74,
496 ERR_UNKNOWN_LEADER_EPOCH = 75,
498 ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
500 ERR_STALE_BROKER_EPOCH = 77,
502 ERR_OFFSET_NOT_AVAILABLE = 78,
504 ERR_MEMBER_ID_REQUIRED = 79,
506 ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
508 ERR_GROUP_MAX_SIZE_REACHED = 81,
511 ERR_FENCED_INSTANCE_ID = 82,
513 ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
515 ERR_ELECTION_NOT_NEEDED = 84,
517 ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
520 ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
522 ERR_INVALID_RECORD = 87,
524 ERR_UNSTABLE_OFFSET_COMMIT = 88,
526 ERR_THROTTLING_QUOTA_EXCEEDED = 89,
529 ERR_PRODUCER_FENCED = 90,
531 ERR_RESOURCE_NOT_FOUND = 91,
533 ERR_DUPLICATE_RESOURCE = 92,
535 ERR_UNACCEPTABLE_CREDENTIAL = 93,
538 ERR_INCONSISTENT_VOTER_SET = 94,
540 ERR_INVALID_UPDATE_VERSION = 95,
542 ERR_FEATURE_UPDATE_FAILED = 96,
544 ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97
552 std::string err2str(RdKafka::ErrorCode err);
560 enum CertificateType {
571 enum CertificateEncoding {
591 class TopicPartition;
618 static Error *create(ErrorCode code,
const std::string *errstr);
630 virtual ErrorCode code()
const = 0;
635 virtual std::string name()
const = 0;
640 virtual std::string str()
const = 0;
646 virtual bool is_fatal()
const = 0;
651 virtual bool is_retriable()
const = 0;
664 virtual bool txn_requires_abort()
const = 0;
703 virtual void dr_cb(
Message &message) = 0;
746 virtual void oauthbearer_token_refresh_cb(
748 const std::string &oauthbearer_config) = 0;
781 virtual int32_t partitioner_cb(
const Topic *topic,
782 const std::string *key,
783 int32_t partition_cnt,
784 void *msg_opaque) = 0;
807 int32_t partition_cnt,
808 void *msg_opaque) = 0;
831 virtual void event_cb(
Event &event) = 0;
853 EVENT_SEVERITY_EMERG = 0,
854 EVENT_SEVERITY_ALERT = 1,
855 EVENT_SEVERITY_CRITICAL = 2,
856 EVENT_SEVERITY_ERROR = 3,
857 EVENT_SEVERITY_WARNING = 4,
858 EVENT_SEVERITY_NOTICE = 5,
859 EVENT_SEVERITY_INFO = 6,
860 EVENT_SEVERITY_DEBUG = 7
874 virtual Type type()
const = 0;
880 virtual ErrorCode err()
const = 0;
886 virtual Severity severity()
const = 0;
892 virtual std::string fac()
const = 0;
902 virtual std::string str()
const = 0;
908 virtual int throttle_time()
const = 0;
914 virtual std::string broker_name()
const = 0;
920 virtual int broker_id()
const = 0;
928 virtual bool fatal()
const = 0;
945 virtual void consume_cb(
Message &message,
void *opaque) = 0;
1026 RdKafka::ErrorCode err,
1027 std::vector<TopicPartition *> &partitions) = 0;
1054 virtual void offset_commit_cb(RdKafka::ErrorCode err,
1055 std::vector<TopicPartition *> &offsets) = 0;
1106 virtual bool ssl_cert_verify_cb(
const std::string &broker_name,
1112 std::string &errstr) = 0;
1138 virtual int socket_cb(
int domain,
int type,
int protocol) = 0;
1162 virtual int open_cb(
const std::string &path,
int flags,
int mode) = 0;
1211 static Conf *create(ConfType type);
1230 const std::string &value,
1231 std::string &errstr) = 0;
1235 DeliveryReportCb *dr_cb,
1236 std::string &errstr) = 0;
1240 const std::string &name,
1241 OAuthBearerTokenRefreshCb *oauthbearer_token_refresh_cb,
1242 std::string &errstr) = 0;
1247 std::string &errstr) = 0;
1257 const Conf *topic_conf,
1258 std::string &errstr) = 0;
1262 PartitionerCb *partitioner_cb,
1263 std::string &errstr) = 0;
1267 PartitionerKeyPointerCb *partitioner_kp_cb,
1268 std::string &errstr) = 0;
1272 SocketCb *socket_cb,
1273 std::string &errstr) = 0;
1278 std::string &errstr) = 0;
1282 RebalanceCb *rebalance_cb,
1283 std::string &errstr) = 0;
1287 OffsetCommitCb *offset_commit_cb,
1288 std::string &errstr) = 0;
1295 SslCertificateVerifyCb *ssl_cert_verify_cb,
1296 std::string &errstr) = 0;
1331 RdKafka::CertificateEncoding cert_enc,
1334 std::string &errstr) = 0;
1349 std::string &value)
const = 0;
1360 OAuthBearerTokenRefreshCb *&oauthbearer_token_refresh_cb)
const = 0;
1376 PartitionerKeyPointerCb *&partitioner_kp_cb)
const = 0;
1400 SslCertificateVerifyCb *&ssl_cert_verify_cb)
const = 0;
1404 virtual std::list<std::string> *dump() = 0;
1408 ConsumeCb *consume_cb,
1409 std::string &errstr) = 0;
1427 virtual struct rd_kafka_conf_s *c_ptr_global() = 0;
1446 virtual struct rd_kafka_topic_conf_s *c_ptr_topic() = 0;
1461 std::string &errstr) = 0;
1487 std::string &errstr) = 0;
1508 virtual const std::string name()
const = 0;
1518 virtual const std::string memberid()
const = 0;
1545 virtual int poll(
int timeout_ms) = 0;
1553 virtual int outq_len() = 0;
1570 virtual ErrorCode metadata(
bool all_topics,
1571 const Topic *only_rkt,
1573 int timeout_ms) = 0;
1585 virtual ErrorCode pause(std::vector<TopicPartition *> &partitions) = 0;
1597 virtual ErrorCode resume(std::vector<TopicPartition *> &partitions) = 0;
1608 virtual ErrorCode query_watermark_offsets(
const std::string &topic,
1612 int timeout_ms) = 0;
1631 virtual ErrorCode get_watermark_offsets(
const std::string &topic,
1658 virtual ErrorCode offsetsForTimes(std::vector<TopicPartition *> &offsets,
1659 int timeout_ms) = 0;
1688 virtual ErrorCode set_log_queue(
Queue *queue) = 0;
1701 virtual void yield() = 0;
1717 virtual const std::string clusterid(
int timeout_ms) = 0;
1735 virtual struct rd_kafka_s *c_ptr() = 0;
1752 virtual int32_t controllerid(
int timeout_ms) = 0;
1776 virtual ErrorCode fatal_error(std::string &errstr)
const = 0;
1817 virtual ErrorCode oauthbearer_set_token(
1818 const std::string &token_value,
1819 int64_t md_lifetime_ms,
1820 const std::string &md_principal_name,
1821 const std::list<std::string> &extensions,
1822 std::string &errstr) = 0;
1841 virtual ErrorCode oauthbearer_set_token_failure(
1842 const std::string &errstr) = 0;
1851 virtual Error *sasl_background_callbacks_enable() = 0;
1859 virtual Queue *get_sasl_queue() = 0;
1864 virtual Queue *get_background_queue() = 0;
1878 virtual void *mem_malloc(
size_t size) = 0;
1893 virtual void mem_free(
void *ptr) = 0;
1922 static TopicPartition *create(
const std::string &topic,
int partition);
1940 static void destroy(std::vector<TopicPartition *> &partitions);
1943 virtual const std::string &topic()
const = 0;
1946 virtual int partition()
const = 0;
1949 virtual int64_t offset()
const = 0;
1952 virtual void set_offset(int64_t offset) = 0;
1955 virtual ErrorCode err()
const = 0;
1991 const std::string &topic_str,
1993 std::string &errstr);
1995 virtual ~
Topic() = 0;
1999 virtual const std::string name()
const = 0;
2006 virtual bool partition_available(int32_t partition)
const = 0;
2019 virtual ErrorCode offset_store(int32_t partition, int64_t offset) = 0;
2037 virtual struct rd_kafka_topic_s *c_ptr() = 0;
2068 MSG_TIMESTAMP_LOG_APPEND_TIME
2109 Header(
const std::string &key,
const void *value,
size_t value_size) :
2110 key_(key), err_(ERR_NO_ERROR), value_size_(value_size) {
2111 value_ = copy_value(value, value_size);
2130 const RdKafka::ErrorCode err) :
2131 key_(key), err_(err), value_(NULL), value_size_(value_size) {
2132 if (err == ERR_NO_ERROR)
2133 value_ = copy_value(value, value_size);
2142 key_(other.key_), err_(other.err_), value_size_(other.value_size_) {
2143 value_ = copy_value(other.value_, value_size_);
2152 if (&other ==
this) {
2158 value_size_ = other.value_size_;
2163 value_ = copy_value(other.value_, value_size_);
2186 return static_cast<const char *
>(value_);
2195 RdKafka::ErrorCode
err()
const {
2200 char *copy_value(
const void *value,
size_t value_size) {
2204 char *dest = (
char *)mem_malloc(value_size + 1);
2205 memcpy(dest, (
const char *)value, value_size);
2206 dest[value_size] =
'\0';
2212 RdKafka::ErrorCode err_;
2215 void *
operator new(size_t);
2223 static Headers *create();
2233 static Headers *create(
const std::vector<Header> &headers);
2244 virtual ErrorCode add(
const std::string &key,
2246 size_t value_size) = 0;
2258 virtual ErrorCode add(
const std::string &key,
const std::string &value) = 0;
2269 virtual ErrorCode add(
const Header &header) = 0;
2278 virtual ErrorCode
remove(
const std::string &key) = 0;
2289 virtual std::vector<Header>
get(
const std::string &key)
const = 0;
2301 virtual Header get_last(
const std::string &key)
const = 0;
2308 virtual std::vector<Header> get_all()
const = 0;
2313 virtual size_t size()
const = 0;
2336 MSG_STATUS_NOT_PERSISTED = 0,
2341 MSG_STATUS_POSSIBLY_PERSISTED = 1,
2346 MSG_STATUS_PERSISTED = 2,
2356 virtual std::string errstr()
const = 0;
2359 virtual ErrorCode err()
const = 0;
2365 virtual Topic *topic()
const = 0;
2368 virtual std::string topic_name()
const = 0;
2371 virtual int32_t partition()
const = 0;
2374 virtual void *payload()
const = 0;
2377 virtual size_t len()
const = 0;
2380 virtual const std::string *key()
const = 0;
2383 virtual const void *key_pointer()
const = 0;
2386 virtual size_t key_len()
const = 0;
2389 virtual int64_t offset()
const = 0;
2395 virtual void *msg_opaque()
const = 0;
2401 virtual int64_t latency()
const = 0;
2419 virtual struct rd_kafka_message_s *c_ptr() = 0;
2424 virtual Status status()
const = 0;
2442 virtual int32_t broker_id()
const = 0;
2485 virtual ErrorCode forward(
Queue *dst) = 0;
2499 virtual Message *consume(
int timeout_ms) = 0;
2508 virtual int poll(
int timeout_ms) = 0;
2510 virtual ~
Queue() = 0;
2527 virtual void io_event_enable(
int fd,
const void *payload,
size_t size) = 0;
2585 virtual ErrorCode assignment(
2586 std::vector<RdKafka::TopicPartition *> &partitions) = 0;
2590 virtual ErrorCode subscription(std::vector<std::string> &topics) = 0;
2626 virtual ErrorCode subscribe(
const std::vector<std::string> &topics) = 0;
2629 virtual ErrorCode unsubscribe() = 0;
2637 virtual ErrorCode assign(
const std::vector<TopicPartition *> &partitions) = 0;
2642 virtual ErrorCode unassign() = 0;
2668 virtual Message *consume(
int timeout_ms) = 0;
2683 virtual ErrorCode commitSync() = 0;
2690 virtual ErrorCode commitAsync() = 0;
2701 virtual ErrorCode commitSync(
Message *message) = 0;
2712 virtual ErrorCode commitAsync(
Message *message) = 0;
2723 virtual ErrorCode commitSync(std::vector<TopicPartition *> &offsets) = 0;
2734 virtual ErrorCode commitAsync(
2735 const std::vector<TopicPartition *> &offsets) = 0;
2747 virtual ErrorCode commitSync(
OffsetCommitCb *offset_commit_cb) = 0;
2759 virtual ErrorCode commitSync(std::vector<TopicPartition *> &offsets,
2772 virtual ErrorCode committed(std::vector<TopicPartition *> &partitions,
2773 int timeout_ms) = 0;
2783 virtual ErrorCode position(std::vector<TopicPartition *> &partitions) = 0;
2808 virtual ErrorCode close() = 0;
2828 virtual ErrorCode seek(
const TopicPartition &partition,
int timeout_ms) = 0;
2848 virtual ErrorCode offsets_store(std::vector<TopicPartition *> &offsets) = 0;
2878 virtual bool assignment_lost() = 0;
2895 virtual std::string rebalance_protocol() = 0;
2913 virtual Error *incremental_assign(
2914 const std::vector<TopicPartition *> &partitions) = 0;
2932 virtual Error *incremental_unassign(
2933 const std::vector<TopicPartition *> &partitions) = 0;
2959 virtual bool closed() = 0;
2989 static Consumer *create(
const Conf *conf, std::string &errstr);
3013 virtual ErrorCode start(
Topic *topic, int32_t partition, int64_t offset) = 0;
3021 virtual ErrorCode start(
Topic *topic,
3035 virtual ErrorCode stop(
Topic *topic, int32_t partition) = 0;
3051 virtual ErrorCode seek(
Topic *topic,
3054 int timeout_ms) = 0;
3073 virtual Message *consume(
Topic *topic, int32_t partition,
int timeout_ms) = 0;
3096 virtual Message *consume(
Queue *queue,
int timeout_ms) = 0;
3117 virtual int consume_callback(
Topic *topic,
3129 virtual int consume_callback(
Queue *queue,
3143 static int64_t OffsetTail(int64_t offset);
3171 static Producer *create(
const Conf *conf, std::string &errstr);
3212 MSG_FREE = RK_MSG_FREE,
3213 MSG_COPY = RK_MSG_COPY
3274 virtual ErrorCode produce(
Topic *topic,
3279 const std::string *key,
3280 void *msg_opaque) = 0;
3286 virtual ErrorCode produce(
Topic *topic,
3293 void *msg_opaque) = 0;
3301 virtual ErrorCode produce(
const std::string topic_name,
3309 void *msg_opaque) = 0;
3318 virtual ErrorCode produce(
const std::string topic_name,
3327 void *msg_opaque) = 0;
3334 virtual ErrorCode produce(
Topic *topic,
3336 const std::vector<char> *payload,
3337 const std::vector<char> *key,
3338 void *msg_opaque) = 0;
3356 virtual ErrorCode flush(
int timeout_ms) = 0;
3386 virtual ErrorCode purge(
int purge_flags) = 0;
3394 PURGE_INFLIGHT = 0x2,
3401 PURGE_NON_BLOCKING = 0x4
3431 virtual Error *init_transactions(
int timeout_ms) = 0;
3446 virtual Error *begin_transaction() = 0;
3494 virtual Error *send_offsets_to_transaction(
3495 const std::vector<TopicPartition *> &offsets,
3497 int timeout_ms) = 0;
3527 virtual Error *commit_transaction(
int timeout_ms) = 0;
3559 virtual Error *abort_transaction(
int timeout_ms) = 0;
3580 virtual int32_t
id()
const = 0;
3583 virtual const std::string
host()
const = 0;
3586 virtual int port()
const = 0;
3610 virtual int32_t
id()
const = 0;
3613 virtual ErrorCode
err()
const = 0;
3616 virtual int32_t
leader()
const = 0;
3619 virtual const std::vector<int32_t> *
replicas()
const = 0;
3624 virtual const std::vector<int32_t> *
isrs()
const = 0;
3642 virtual const std::string
topic()
const = 0;
3645 virtual const PartitionMetadataVector *
partitions()
const = 0;
3648 virtual ErrorCode
err()
const = 0;
3675 virtual const BrokerMetadataVector *
brokers()
const = 0;
3682 virtual const TopicMetadataVector *
topics()
const = 0;
virtual int32_t partitioner_cb(const Topic *topic, const void *key, size_t key_len, int32_t partition_cnt, void *msg_opaque)=0
Variant partitioner callback that gets key as pointer and length instead of as a const std::string *...
High-level KafkaConsumer (for brokers 0.9 and later)
Definition: rdkafkacpp.h:2565
Definition: rdkafkacpp.h:2067
static const int64_t OFFSET_BEGINNING
Special offsets.
Definition: rdkafkacpp.h:1975
ConfType
Configuration object type.
Definition: rdkafkacpp.h:1193
Partitioner callback class.
Definition: rdkafkacpp.h:762
Type
Event type.
Definition: rdkafkacpp.h:844
SASL/OAUTHBEARER token refresh callback class.
Definition: rdkafkacpp.h:737
static const int32_t PARTITION_UA
Unassigned partition.
Definition: rdkafkacpp.h:1972
Message object.
Definition: rdkafkacpp.h:2328
Severity
EVENT_LOG severities (conforms to syslog(3) severities)
Definition: rdkafkacpp.h:852
Event callback class.
Definition: rdkafkacpp.h:824
Status
Message persistence status can be used by the application to find out if a produced message was persi...
Definition: rdkafkacpp.h:2332
KafkaConsumer: Rebalance callback class
Definition: rdkafkacpp.h:955
int64_t timestamp
Definition: rdkafkacpp.h:2072
Variant partitioner with key pointer.
Definition: rdkafkacpp.h:794
Definition: rdkafkacpp.h:847
static const int64_t OFFSET_INVALID
Definition: rdkafkacpp.h:1978
Definition: rdkafkacpp.h:2066
Topic handle.
Definition: rdkafkacpp.h:1964
Producer.
Definition: rdkafkacpp.h:3159
Definition: rdkafkacpp.h:1194
Definition: rdkafkacpp.h:845
ConfResult
RdKafka::Conf::Set() result code.
Definition: rdkafkacpp.h:1201
Definition: rdkafkacpp.h:93
Queue interface.
Definition: rdkafkacpp.h:2468
MessageTimestampType type
Definition: rdkafkacpp.h:2071
Message timestamp object.
Definition: rdkafkacpp.h:2062
static const int64_t OFFSET_END
Definition: rdkafkacpp.h:1976
Portability: OpenCb callback class
Definition: rdkafkacpp.h:1149
SSL broker certificate verification class.
Definition: rdkafkacpp.h:1068
Definition: rdkafkacpp.h:846
static const int64_t OFFSET_STORED
Definition: rdkafkacpp.h:1977
Configuration interface.
Definition: rdkafkacpp.h:1188
Offset Commit callback class.
Definition: rdkafkacpp.h:1037
Base handle, super class for specific clients.
Definition: rdkafkacpp.h:1502
Topic+Partition.
Definition: rdkafkacpp.h:1915
The Error class is used as a return value from APIs to propagate an error. The error consists of an e...
Definition: rdkafkacpp.h:613
Consume callback class.
Definition: rdkafkacpp.h:936
Simple Consumer (legacy)
Definition: rdkafkacpp.h:2977
MessageTimestampType
Definition: rdkafkacpp.h:2065
Event object class as passed to the EventCb callback.
Definition: rdkafkacpp.h:841
Portability: SocketCb callback class
Definition: rdkafkacpp.h:1123
Delivery Report callback class.
Definition: rdkafkacpp.h:698