57 #ifdef LIBRDKAFKA_STATICLIB
60 #ifdef LIBRDKAFKACPP_EXPORTS
61 #define RD_EXPORT __declspec(dllexport)
63 #define RD_EXPORT __declspec(dllimport)
94 #define RD_KAFKA_VERSION 0x000905ff
108 std::string version_str();
115 std::string get_debug_contexts();
127 int wait_destroyed(
int timeout_ms);
159 ERR__BAD_COMPRESSION = -198,
165 ERR__TRANSPORT = -195,
167 ERR__CRIT_SYS_RESOURCE = -194,
171 ERR__MSG_TIMED_OUT = -192,
174 ERR__PARTITION_EOF = -191,
176 ERR__UNKNOWN_PARTITION = -190,
180 ERR__UNKNOWN_TOPIC = -188,
182 ERR__ALL_BROKERS_DOWN = -187,
184 ERR__INVALID_ARG = -186,
186 ERR__TIMED_OUT = -185,
188 ERR__QUEUE_FULL = -184,
190 ERR__ISR_INSUFF = -183,
192 ERR__NODE_UPDATE = -182,
196 ERR__WAIT_COORD = -180,
198 ERR__UNKNOWN_GROUP = -179,
200 ERR__IN_PROGRESS = -178,
202 ERR__PREV_IN_PROGRESS = -177,
204 ERR__EXISTING_SUBSCRIPTION = -176,
206 ERR__ASSIGN_PARTITIONS = -175,
208 ERR__REVOKE_PARTITIONS = -174,
210 ERR__CONFLICT = -173,
214 ERR__UNKNOWN_PROTOCOL = -171,
216 ERR__NOT_IMPLEMENTED = -170,
218 ERR__AUTHENTICATION = -169,
220 ERR__NO_OFFSET = -168,
222 ERR__OUTDATED = -167,
224 ERR__TIMED_OUT_QUEUE = -166,
226 ERR__UNSUPPORTED_FEATURE = -165,
228 ERR__WAIT_CACHE = -164,
238 ERR_OFFSET_OUT_OF_RANGE = 1,
242 ERR_UNKNOWN_TOPIC_OR_PART = 3,
244 ERR_INVALID_MSG_SIZE = 4,
246 ERR_LEADER_NOT_AVAILABLE = 5,
248 ERR_NOT_LEADER_FOR_PARTITION = 6,
250 ERR_REQUEST_TIMED_OUT = 7,
252 ERR_BROKER_NOT_AVAILABLE = 8,
254 ERR_REPLICA_NOT_AVAILABLE = 9,
256 ERR_MSG_SIZE_TOO_LARGE = 10,
258 ERR_STALE_CTRL_EPOCH = 11,
260 ERR_OFFSET_METADATA_TOO_LARGE = 12,
262 ERR_NETWORK_EXCEPTION = 13,
264 ERR_GROUP_LOAD_IN_PROGRESS = 14,
266 ERR_GROUP_COORDINATOR_NOT_AVAILABLE = 15,
268 ERR_NOT_COORDINATOR_FOR_GROUP = 16,
270 ERR_TOPIC_EXCEPTION = 17,
272 ERR_RECORD_LIST_TOO_LARGE = 18,
274 ERR_NOT_ENOUGH_REPLICAS = 19,
276 ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
278 ERR_INVALID_REQUIRED_ACKS = 21,
280 ERR_ILLEGAL_GENERATION = 22,
282 ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
284 ERR_INVALID_GROUP_ID = 24,
286 ERR_UNKNOWN_MEMBER_ID = 25,
288 ERR_INVALID_SESSION_TIMEOUT = 26,
290 ERR_REBALANCE_IN_PROGRESS = 27,
292 ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
294 ERR_TOPIC_AUTHORIZATION_FAILED = 29,
296 ERR_GROUP_AUTHORIZATION_FAILED = 30,
298 ERR_CLUSTER_AUTHORIZATION_FAILED = 31
306 std::string err2str(RdKafka::ErrorCode err);
320 class TopicPartition;
359 virtual void dr_cb (
Message &message) = 0;
390 virtual int32_t partitioner_cb (
const Topic *topic,
391 const std::string *key,
392 int32_t partition_cnt,
393 void *msg_opaque) = 0;
415 int32_t partition_cnt,
416 void *msg_opaque) = 0;
438 virtual void event_cb (
Event &event) = 0;
459 EVENT_SEVERITY_EMERG = 0,
460 EVENT_SEVERITY_ALERT = 1,
461 EVENT_SEVERITY_CRITICAL = 2,
462 EVENT_SEVERITY_ERROR = 3,
463 EVENT_SEVERITY_WARNING = 4,
464 EVENT_SEVERITY_NOTICE = 5,
465 EVENT_SEVERITY_INFO = 6,
466 EVENT_SEVERITY_DEBUG = 7
469 virtual ~
Event () { }
479 virtual Type type ()
const = 0;
485 virtual ErrorCode err ()
const = 0;
491 virtual Severity severity ()
const = 0;
497 virtual std::string fac ()
const = 0;
507 virtual std::string str ()
const = 0;
513 virtual int throttle_time ()
const = 0;
519 virtual std::string broker_name ()
const = 0;
525 virtual int broker_id ()
const = 0;
542 virtual void consume_cb (
Message &message,
void *opaque) = 0;
603 RdKafka::ErrorCode err,
604 std::vector<TopicPartition*>&partitions) = 0;
630 virtual void offset_commit_cb(RdKafka::ErrorCode err,
631 std::vector<TopicPartition*>&offsets) = 0;
657 virtual int socket_cb (
int domain,
int type,
int protocol) = 0;
680 virtual int open_cb (
const std::string &path,
int flags,
int mode) = 0;
729 static Conf *create (ConfType type);
747 const std::string &value,
748 std::string &errstr) = 0;
751 virtual Conf::ConfResult set (
const std::string &name, ConsumeCb *consume_cb,
752 std::string &errstr) = 0;
756 DeliveryReportCb *dr_cb,
757 std::string &errstr) = 0;
762 std::string &errstr) = 0;
772 const Conf *topic_conf,
773 std::string &errstr) = 0;
777 PartitionerCb *partitioner_cb,
778 std::string &errstr) = 0;
782 PartitionerKeyPointerCb *partitioner_kp_cb,
783 std::string &errstr) = 0;
787 std::string &errstr) = 0;
791 std::string &errstr) = 0;
795 RebalanceCb *rebalance_cb,
796 std::string &errstr) = 0;
800 OffsetCommitCb *offset_commit_cb,
801 std::string &errstr) = 0;
815 std::string &value)
const = 0;
835 virtual Conf::ConfResult get(PartitionerKeyPointerCb *&partitioner_kp_cb)
const = 0;
859 virtual std::list<std::string> *dump () = 0;
879 virtual const std::string name ()
const = 0;
889 virtual const std::string memberid ()
const = 0;
914 virtual int poll (
int timeout_ms) = 0;
922 virtual int outq_len () = 0;
939 virtual ErrorCode metadata (
bool all_topics,
const Topic *only_rkt,
940 Metadata **metadatap,
int timeout_ms) = 0;
952 virtual ErrorCode pause (std::vector<TopicPartition*> &partitions) = 0;
964 virtual ErrorCode resume (std::vector<TopicPartition*> &partitions) = 0;
975 virtual ErrorCode query_watermark_offsets (
const std::string &topic,
977 int64_t *low, int64_t *high,
997 virtual ErrorCode get_watermark_offsets (
const std::string &topic,
999 int64_t *low, int64_t *high) = 0;
1021 virtual ErrorCode offsetsForTimes (std::vector<TopicPartition*> &offsets,
1022 int timeout_ms) = 0;
1051 virtual ErrorCode set_log_queue (
Queue *queue) = 0;
1081 static TopicPartition *create (
const std::string &topic,
int partition);
1082 static TopicPartition *create (
const std::string &topic,
int partition,
1091 static void destroy (std::vector<TopicPartition*> &partitions);
1094 virtual const std::string &topic ()
const = 0;
1097 virtual int partition ()
const = 0;
1100 virtual int64_t offset ()
const = 0;
1103 virtual void set_offset (int64_t offset) = 0;
1106 virtual ErrorCode err ()
const = 0;
1141 static Topic *create (
Handle *base,
const std::string &topic_str,
1142 Conf *conf, std::string &errstr);
1144 virtual ~
Topic () = 0;
1148 virtual const std::string name ()
const = 0;
1155 virtual bool partition_available (int32_t partition)
const = 0;
1168 virtual ErrorCode offset_store (int32_t partition, int64_t offset) = 0;
1198 MSG_TIMESTAMP_LOG_APPEND_TIME
1227 virtual std::string errstr()
const = 0;
1230 virtual ErrorCode err ()
const = 0;
1236 virtual Topic *topic ()
const = 0;
1239 virtual std::string topic_name ()
const = 0;
1242 virtual int32_t partition ()
const = 0;
1245 virtual void *payload ()
const = 0 ;
1248 virtual size_t len ()
const = 0;
1251 virtual const std::string *key ()
const = 0;
1254 virtual const void *key_pointer ()
const = 0 ;
1257 virtual size_t key_len ()
const = 0;
1260 virtual int64_t offset ()
const = 0;
1266 virtual void *msg_opaque ()
const = 0;
1311 virtual ErrorCode forward (
Queue *dst) = 0;
1325 virtual Message *consume (
int timeout_ms) = 0;
1334 virtual int poll (
int timeout_ms) = 0;
1336 virtual ~
Queue () = 0;
1377 virtual ErrorCode assignment (std::vector<RdKafka::TopicPartition*> &partitions) = 0;
1381 virtual ErrorCode subscription (std::vector<std::string> &topics) = 0;
1407 virtual ErrorCode subscribe (
const std::vector<std::string> &topics) = 0;
1410 virtual ErrorCode unsubscribe () = 0;
1418 virtual ErrorCode assign (
const std::vector<TopicPartition*> &partitions) = 0;
1423 virtual ErrorCode unassign () = 0;
1449 virtual Message *consume (
int timeout_ms) = 0;
1464 virtual ErrorCode commitSync () = 0;
1471 virtual ErrorCode commitAsync () = 0;
1480 virtual ErrorCode commitSync (
Message *message) = 0;
1489 virtual ErrorCode commitAsync (
Message *message) = 0;
1496 virtual ErrorCode commitSync (std::vector<TopicPartition*> &offsets) = 0;
1503 virtual ErrorCode commitAsync (
const std::vector<TopicPartition*> &offsets) = 0;
1515 virtual ErrorCode commitSync (
OffsetCommitCb *offset_commit_cb) = 0;
1527 virtual ErrorCode commitSync (std::vector<TopicPartition*> &offsets,
1541 virtual ErrorCode committed (std::vector<TopicPartition*> &partitions,
1542 int timeout_ms) = 0;
1552 virtual ErrorCode position (std::vector<TopicPartition*> &partitions) = 0;
1577 virtual ErrorCode close () = 0;
1607 static Consumer *create (
Conf *conf, std::string &errstr);
1631 virtual ErrorCode start (
Topic *topic, int32_t partition, int64_t offset) = 0;
1639 virtual ErrorCode start (
Topic *topic, int32_t partition, int64_t offset,
1651 virtual ErrorCode stop (
Topic *topic, int32_t partition) = 0;
1667 virtual ErrorCode seek (
Topic *topic, int32_t partition, int64_t offset,
1668 int timeout_ms) = 0;
1687 virtual Message *consume (
Topic *topic, int32_t partition,
1688 int timeout_ms) = 0;
1711 virtual Message *consume (
Queue *queue,
int timeout_ms) = 0;
1732 virtual int consume_callback (
Topic *topic, int32_t partition,
1743 virtual int consume_callback (
Queue *queue,
int timeout_ms,
1756 static int64_t OffsetTail(int64_t offset);
1784 static Producer *create (
Conf *conf, std::string &errstr);
1823 MSG_FREE = RK_MSG_FREE,
1824 MSG_COPY = RK_MSG_COPY
1883 virtual ErrorCode produce (
Topic *topic, int32_t partition,
1885 void *payload,
size_t len,
1886 const std::string *key,
1887 void *msg_opaque) = 0;
1893 virtual ErrorCode produce (
Topic *topic, int32_t partition,
1895 void *payload,
size_t len,
1896 const void *key,
size_t key_len,
1897 void *msg_opaque) = 0;
1905 virtual ErrorCode produce (
const std::string topic_name, int32_t partition,
1907 void *payload,
size_t len,
1908 const void *key,
size_t key_len,
1910 void *msg_opaque) = 0;
1917 virtual ErrorCode produce (
Topic *topic, int32_t partition,
1918 const std::vector<char> *payload,
1919 const std::vector<char> *key,
1920 void *msg_opaque) = 0;
1934 virtual ErrorCode flush (
int timeout_ms) = 0;
1953 virtual int32_t
id()
const = 0;
1956 virtual const std::string
host()
const = 0;
1959 virtual int port()
const = 0;
1983 virtual int32_t
id()
const = 0;
1986 virtual ErrorCode
err()
const = 0;
1989 virtual int32_t
leader()
const = 0;
1992 virtual const std::vector<int32_t> *
replicas()
const = 0;
1997 virtual const std::vector<int32_t> *
isrs()
const = 0;
2015 virtual const std::string
topic()
const = 0;
2018 virtual const PartitionMetadataVector *
partitions()
const = 0;
2021 virtual ErrorCode
err()
const = 0;
2044 virtual const BrokerMetadataVector *
brokers()
const = 0;
2047 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:1357
Definition: rdkafkacpp.h:1197
static const int64_t OFFSET_BEGINNING
Special offsets.
Definition: rdkafkacpp.h:1126
ConfType
Configuration object type.
Definition: rdkafkacpp.h:711
Partitioner callback class.
Definition: rdkafkacpp.h:372
Type
Event type.
Definition: rdkafkacpp.h:450
static const int32_t PARTITION_UA
Unassigned partition.
Definition: rdkafkacpp.h:1123
Message object.
Definition: rdkafkacpp.h:1218
Severity
EVENT_LOG severities (conforms to syslog(3) severities)
Definition: rdkafkacpp.h:458
Event callback class.
Definition: rdkafkacpp.h:431
KafkaConsunmer: Rebalance callback class
Definition: rdkafkacpp.h:551
int64_t timestamp
Definition: rdkafkacpp.h:1202
Variant partitioner with key pointer.
Definition: rdkafkacpp.h:402
Definition: rdkafkacpp.h:453
static const int64_t OFFSET_INVALID
Definition: rdkafkacpp.h:1129
Definition: rdkafkacpp.h:1196
Topic handle.
Definition: rdkafkacpp.h:1115
Producer.
Definition: rdkafkacpp.h:1772
Definition: rdkafkacpp.h:712
Definition: rdkafkacpp.h:451
ConfResult
RdKafka::Conf::Set() result code.
Definition: rdkafkacpp.h:719
Definition: rdkafkacpp.h:72
Queue interface.
Definition: rdkafkacpp.h:1294
MessageTimestampType type
Definition: rdkafkacpp.h:1201
Message timestamp object.
Definition: rdkafkacpp.h:1193
static const int64_t OFFSET_END
Definition: rdkafkacpp.h:1127
Portability: OpenCb callback class
Definition: rdkafkacpp.h:667
Definition: rdkafkacpp.h:452
static const int64_t OFFSET_STORED
Definition: rdkafkacpp.h:1128
Configuration interface.
Definition: rdkafkacpp.h:706
Offset Commit callback class.
Definition: rdkafkacpp.h:613
Base handle, super class for specific clients.
Definition: rdkafkacpp.h:874
Topic+Partition.
Definition: rdkafkacpp.h:1073
Consume callback class.
Definition: rdkafkacpp.h:533
Simple Consumer (legacy)
Definition: rdkafkacpp.h:1595
MessageTimestampType
Definition: rdkafkacpp.h:1195
Event object class as passed to the EventCb callback.
Definition: rdkafkacpp.h:447
Portability: SocketCb callback class
Definition: rdkafkacpp.h:642
Delivery Report callback class.
Definition: rdkafkacpp.h:354