Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/consumer_configuration.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/consumer_configuration.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/consumer_configuration.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,323 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +#pragma once + +#include <pulsar/defines.h> + +#include "consumer.h" +#include "producer_configuration.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _pulsar_consumer_configuration pulsar_consumer_configuration_t; + +typedef enum +{ + /** + * There can be only 1 consumer on the same topic with the same consumerName + */ + pulsar_ConsumerExclusive, + + /** + * Multiple consumers will be able to use the same consumerName and the messages + * will be dispatched according to a round-robin rotation between the connected consumers + */ + pulsar_ConsumerShared, + + /** Only one consumer is active on the subscription; Subscription can have N consumers + * connected one of which will get promoted to master if the current master becomes inactive + */ + pulsar_ConsumerFailover, + + /** + * Multiple consumer will be able to use the same subscription and all messages with the same key + * will be dispatched to only one consumer + */ + pulsar_ConsumerKeyShared +} pulsar_consumer_type; + +typedef enum +{ + /** + * the latest position which means the start consuming position will be the last message + */ + initial_position_latest, + /** + * the earliest position which means the start consuming position will be the first message + */ + initial_position_earliest +} initial_position; + +typedef enum +{ + // This is the default option to fail consume until crypto succeeds + pulsar_ConsumerFail, + // Message is silently acknowledged and not delivered to the application + pulsar_ConsumerDiscard, + // Deliver the encrypted message to the application. It's the application's + // responsibility to decrypt the message. If message is also compressed, + // decompression will fail. If message contain batch messages, client will + // not be able to retrieve individual messages in the batch + pulsar_ConsumerConsume +} pulsar_consumer_crypto_failure_action; + +/// Callback definition for MessageListener +typedef void (*pulsar_message_listener)(pulsar_consumer_t *consumer, pulsar_message_t *msg, void *ctx); + +PULSAR_PUBLIC pulsar_consumer_configuration_t *pulsar_consumer_configuration_create(); + +PULSAR_PUBLIC void pulsar_consumer_configuration_free( + pulsar_consumer_configuration_t *consumer_configuration); + +/** + * Specify the consumer type. The consumer type enables + * specifying the type of subscription. In Exclusive subscription, + * only a single consumer is allowed to attach to the subscription. Other consumers + * will get an error message. In Shared subscription, multiple consumers will be + * able to use the same subscription name and the messages will be dispatched in a + * round robin fashion. In Failover subscription, a primary-failover subscription model + * allows for multiple consumers to attach to a single subscription, though only one + * of them will be âmasterâ at a given time. Only the primary consumer will receive + * messages. When the primary consumer gets disconnected, one among the failover + * consumers will be promoted to primary and will start getting messages. + */ +PULSAR_PUBLIC void pulsar_consumer_configuration_set_consumer_type( + pulsar_consumer_configuration_t *consumer_configuration, pulsar_consumer_type consumerType); + +PULSAR_PUBLIC pulsar_consumer_type +pulsar_consumer_configuration_get_consumer_type(pulsar_consumer_configuration_t *consumer_configuration); + +PULSAR_PUBLIC void pulsar_consumer_configuration_set_schema_info( + pulsar_consumer_configuration_t *consumer_configuration, pulsar_schema_type schemaType, const char *name, + const char *schema, pulsar_string_map_t *properties); + +/** + * A message listener enables your application to configure how to process + * and acknowledge messages delivered. A listener will be called in order + * for every message received. + */ +PULSAR_PUBLIC void pulsar_consumer_configuration_set_message_listener( + pulsar_consumer_configuration_t *consumer_configuration, pulsar_message_listener messageListener, + void *ctx); + +PULSAR_PUBLIC int pulsar_consumer_configuration_has_message_listener( + pulsar_consumer_configuration_t *consumer_configuration); + +/** + * Sets the size of the consumer receive queue. + * + * The consumer receive queue controls how many messages can be accumulated by the Consumer before the + * application calls receive(). Using a higher value could potentially increase the consumer throughput + * at the expense of bigger memory utilization. + * + * Setting the consumer queue size as zero decreases the throughput of the consumer, by disabling + * pre-fetching of + * messages. This approach improves the message distribution on shared subscription, by pushing messages + * only to + * the consumers that are ready to process them. Neither receive with timeout nor Partitioned Topics can + * be + * used if the consumer queue size is zero. The receive() function call should not be interrupted when + * the consumer queue size is zero. + * + * Default value is 1000 messages and should be good for most use cases. + * + * @param size + * the new receiver queue size value + */ +PULSAR_PUBLIC void pulsar_consumer_configuration_set_receiver_queue_size( + pulsar_consumer_configuration_t *consumer_configuration, int size); + +PULSAR_PUBLIC int pulsar_consumer_configuration_get_receiver_queue_size( + pulsar_consumer_configuration_t *consumer_configuration); + +/** + * Set the max total receiver queue size across partitons. + * <p> + * This setting will be used to reduce the receiver queue size for individual partitions + * {@link #setReceiverQueueSize(int)} if the total exceeds this value (default: 50000). + * + * @param maxTotalReceiverQueueSizeAcrossPartitions + */ +PULSAR_PUBLIC void pulsar_consumer_set_max_total_receiver_queue_size_across_partitions( + pulsar_consumer_configuration_t *consumer_configuration, int maxTotalReceiverQueueSizeAcrossPartitions); + +/** + * @return the configured max total receiver queue size across partitions + */ +PULSAR_PUBLIC int pulsar_consumer_get_max_total_receiver_queue_size_across_partitions( + pulsar_consumer_configuration_t *consumer_configuration); + +PULSAR_PUBLIC void pulsar_consumer_set_consumer_name(pulsar_consumer_configuration_t *consumer_configuration, + const char *consumerName); + +PULSAR_PUBLIC const char *pulsar_consumer_get_consumer_name( + pulsar_consumer_configuration_t *consumer_configuration); + +/** + * Set the timeout in milliseconds for unacknowledged messages, the timeout needs to be greater than + * 10 seconds. An Exception is thrown if the given value is less than 10000 (10 seconds). + * If a successful acknowledgement is not sent within the timeout all the unacknowledged messages are + * redelivered. + * @param timeout in milliseconds + */ +PULSAR_PUBLIC void pulsar_consumer_set_unacked_messages_timeout_ms( + pulsar_consumer_configuration_t *consumer_configuration, const uint64_t milliSeconds); + +/** + * @return the configured timeout in milliseconds for unacked messages. + */ +PULSAR_PUBLIC long pulsar_consumer_get_unacked_messages_timeout_ms( + pulsar_consumer_configuration_t *consumer_configuration); + +/** + * Set the delay to wait before re-delivering messages that have failed to be process. + * <p> + * When application uses {@link Consumer#negativeAcknowledge(Message)}, the failed message + * will be redelivered after a fixed timeout. The default is 1 min. + * + * @param redeliveryDelay + * redelivery delay for failed messages + * @param timeUnit + * unit in which the timeout is provided. + * @return the consumer builder instance + */ +PULSAR_PUBLIC void pulsar_configure_set_negative_ack_redelivery_delay_ms( + pulsar_consumer_configuration_t *consumer_configuration, long redeliveryDelayMillis); + +/** + * Get the configured delay to wait before re-delivering messages that have failed to be process. + * + * @param consumer_configuration the consumer conf object + * @return redelivery delay for failed messages + */ +PULSAR_PUBLIC long pulsar_configure_get_negative_ack_redelivery_delay_ms( + pulsar_consumer_configuration_t *consumer_configuration); + +/** + * Set time window in milliseconds for grouping message ACK requests. An ACK request is not sent + * to broker until the time window reaches its end, or the number of grouped messages reaches + * limit. Default is 100 milliseconds. If it's set to a non-positive value, ACK requests will be + * directly sent to broker without grouping. + * + * @param consumer_configuration the consumer conf object + * @param ackGroupMillis time of ACK grouping window in milliseconds. + */ +PULSAR_PUBLIC void pulsar_configure_set_ack_grouping_time_ms( + pulsar_consumer_configuration_t *consumer_configuration, long ackGroupingMillis); + +/** + * Get grouping time window in milliseconds. + * + * @param consumer_configuration the consumer conf object + * @return grouping time window in milliseconds. + */ +PULSAR_PUBLIC long pulsar_configure_get_ack_grouping_time_ms( + pulsar_consumer_configuration_t *consumer_configuration); + +/** + * Set max number of grouped messages within one grouping time window. If it's set to a + * non-positive value, number of grouped messages is not limited. Default is 1000. + * + * @param consumer_configuration the consumer conf object + * @param maxGroupingSize max number of grouped messages with in one grouping time window. + */ +PULSAR_PUBLIC void pulsar_configure_set_ack_grouping_max_size( + pulsar_consumer_configuration_t *consumer_configuration, long maxGroupingSize); + +/** + * Get max number of grouped messages within one grouping time window. + * + * @param consumer_configuration the consumer conf object + * @return max number of grouped messages within one grouping time window. + */ +PULSAR_PUBLIC long pulsar_configure_get_ack_grouping_max_size( + pulsar_consumer_configuration_t *consumer_configuration); + +PULSAR_PUBLIC int pulsar_consumer_is_encryption_enabled( + pulsar_consumer_configuration_t *consumer_configuration); + +PULSAR_PUBLIC void pulsar_consumer_configuration_set_default_crypto_key_reader( + pulsar_consumer_configuration_t *consumer_configuration, const char *public_key_path, + const char *private_key_path); + +PULSAR_PUBLIC pulsar_consumer_crypto_failure_action pulsar_consumer_configuration_get_crypto_failure_action( + pulsar_consumer_configuration_t *consumer_configuration); + +PULSAR_PUBLIC void pulsar_consumer_configuration_set_crypto_failure_action( + pulsar_consumer_configuration_t *consumer_configuration, + pulsar_consumer_crypto_failure_action cryptoFailureAction); + +PULSAR_PUBLIC int pulsar_consumer_is_read_compacted(pulsar_consumer_configuration_t *consumer_configuration); + +PULSAR_PUBLIC void pulsar_consumer_set_read_compacted(pulsar_consumer_configuration_t *consumer_configuration, + int compacted); + +PULSAR_PUBLIC int pulsar_consumer_get_subscription_initial_position( + pulsar_consumer_configuration_t *consumer_configuration); + +PULSAR_PUBLIC void pulsar_consumer_set_subscription_initial_position( + pulsar_consumer_configuration_t *consumer_configuration, initial_position subscriptionInitialPosition); + +PULSAR_PUBLIC void pulsar_consumer_configuration_set_property(pulsar_consumer_configuration_t *conf, + const char *name, const char *value); + +PULSAR_PUBLIC void pulsar_consumer_configuration_set_priority_level( + pulsar_consumer_configuration_t *consumer_configuration, int priority_level); + +PULSAR_PUBLIC int pulsar_consumer_configuration_get_priority_level( + pulsar_consumer_configuration_t *consumer_configuration); + +PULSAR_PUBLIC void pulsar_consumer_configuration_set_max_pending_chunked_message( + pulsar_consumer_configuration_t *consumer_configuration, int max_pending_chunked_message); + +PULSAR_PUBLIC int pulsar_consumer_configuration_get_max_pending_chunked_message( + pulsar_consumer_configuration_t *consumer_configuration); + +PULSAR_PUBLIC void pulsar_consumer_configuration_set_auto_ack_oldest_chunked_message_on_queue_full( + pulsar_consumer_configuration_t *consumer_configuration, + int auto_ack_oldest_chunked_message_on_queue_full); + +PULSAR_PUBLIC int pulsar_consumer_configuration_is_auto_ack_oldest_chunked_message_on_queue_full( + pulsar_consumer_configuration_t *consumer_configuration); + +PULSAR_PUBLIC void pulsar_consumer_configuration_set_start_message_id_inclusive( + pulsar_consumer_configuration_t *consumer_configuration, int start_message_id_inclusive); + +PULSAR_PUBLIC int pulsar_consumer_configuration_is_start_message_id_inclusive( + pulsar_consumer_configuration_t *consumer_configuration); + +// const CryptoKeyReaderPtr getCryptoKeyReader() +// +// const; +// ConsumerConfiguration& +// setCryptoKeyReader(CryptoKeyReaderPtr +// cryptoKeyReader); +// +// ConsumerCryptoFailureAction getCryptoFailureAction() +// +// const; +// ConsumerConfiguration& +// setCryptoFailureAction(ConsumerCryptoFailureAction +// action); + +#ifdef __cplusplus +} +#endif
Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/consumer_configuration.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/consumer_configuration.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/consumer_configuration.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZEACgkQT0AbyNP5 ++1VPbQ//U/MdMlG8+aqSnIcLQiFIbcu6bkfMRtQDW5u/XBSHRyWtTQHmTci1GIt9 +MgvqsfvgdVUo3kX+n000xbTYb7NmG2OPEWOrwXjx+lwoNErjpOWQU1eroG1nnM+a +1oLYhA6NaENqV88YqGE7iO3jDdjW5BSP2DAfGiZBmlGu6w/LktsCgLH2WMPyJt07 +VlBjUHY5TWvRyVdE966APKvB5Or3FFILlO3DuuSVUDwtDxQUpWxaSQII1RugXp1d +U3aQI6/D8JUmN8vyxLHNIHQzWKm37KvX+tC2tzftrAZ02XLfBUaS5TfPyYZo26Qb +syRaSSSrqR8+I9YdvQjPMea2GIeS4sXDEESkzJqwXxU/n+4F59CVyIR+DD8wvD+P +vxUV3kUQuE2VQElK6VEIWrLvK1QnCrmwsYeZSRwXeipWJrU+g6gy0+plH6t5EdvC +USGAlK5SXr5ZrWZuvPsuIGzCT5ncqgIP7UyJOxpOH0ESrRQ5CwmlRcK4lhKqwmfz +HczxWhDxpdAWJQGODy3dltWJWCl4oo9wdXS9P3yfHkm38mUP/KBy/EyCeO4qdqJu +lPD5sKq+ISI3tCeuKKy1ttNx6es5j5OyREKdBo3eBYpVMzO+X3PpNrh3jm7ZK8rM +vqv+AvOrNr/RDbX8OzLgz5HO5c15MXi0f1Sj8GXwKYAczU4icIk= +=Nl3/ +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/consumer_configuration.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/consumer_configuration.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/consumer_configuration.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +b8cec6293170c94f2e9caa1d279712c6fa97120c197870fba75b4b63de693394ddc45ec1ab160c29b1b29f8a110a7dfa92c5b0557b5e29f7d674fe42fea0f6e1 ./x86-windows-static/include/pulsar/c/consumer_configuration.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,211 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include <pulsar/defines.h> +#include <stddef.h> +#include <stdint.h> + +#include "string_map.h" + +typedef struct _pulsar_message pulsar_message_t; +typedef struct _pulsar_message_id pulsar_message_id_t; + +PULSAR_PUBLIC pulsar_message_t *pulsar_message_create(); +PULSAR_PUBLIC void pulsar_message_free(pulsar_message_t *message); + +/// Builder + +PULSAR_PUBLIC void pulsar_message_set_content(pulsar_message_t *message, const void *data, size_t size); + +/** + * Set content of the message to a buffer already allocated by the caller. No copies of + * this buffer will be made. The caller is responsible to ensure the memory buffer is + * valid until the message has been persisted (or an error is returned). + */ +PULSAR_PUBLIC void pulsar_message_set_allocated_content(pulsar_message_t *message, void *data, size_t size); + +PULSAR_PUBLIC void pulsar_message_set_property(pulsar_message_t *message, const char *name, + const char *value); + +/** + * set partition key for the message routing + * @param hash of this key is used to determine message's topic partition + */ +PULSAR_PUBLIC void pulsar_message_set_partition_key(pulsar_message_t *message, const char *partitionKey); + +/** + * Sets the ordering key of the message for message dispatch in Key_Shared mode. + * @param the ordering key for the message + */ +PULSAR_PUBLIC void pulsar_message_set_ordering_key(pulsar_message_t *message, const char *orderingKey); + +/** + * Set the event timestamp for the message. + */ +PULSAR_PUBLIC void pulsar_message_set_event_timestamp(pulsar_message_t *message, uint64_t eventTimestamp); + +/** + * Specify a custom sequence id for the message being published. + * <p> + * The sequence id can be used for deduplication purposes and it needs to follow these rules: + * <ol> + * <li><code>sequenceId >= 0</code> + * <li>Sequence id for a message needs to be greater than sequence id for earlier messages: + * <code>sequenceId(N+1) > sequenceId(N)</code> + * <li>It's not necessary for sequence ids to be consecutive. There can be holes between messages. Eg. the + * <code>sequenceId</code> could represent an offset or a cumulative size. + * </ol> + * + * @param sequenceId + * the sequence id to assign to the current message + */ +PULSAR_PUBLIC void pulsar_message_set_sequence_id(pulsar_message_t *message, int64_t sequenceId); + +/** + * Specify a delay for the delivery of the messages. + * + * @param delay the delay in milliseconds + */ +PULSAR_PUBLIC void pulsar_message_set_deliver_after(pulsar_message_t *message, uint64_t delayMillis); + +/** + * Specify the this message should not be delivered earlier than the + * specified timestamp. + * + * @param deliveryTimestamp UTC based timestamp in milliseconds + */ +PULSAR_PUBLIC void pulsar_message_set_deliver_at(pulsar_message_t *message, uint64_t deliveryTimestampMillis); + +/** + * override namespace replication clusters. note that it is the + * caller's responsibility to provide valid cluster names, and that + * all clusters have been previously configured as topics. + * + * given an empty list, the message will replicate per the namespace + * configuration. + * + * @param clusters where to send this message. + */ +PULSAR_PUBLIC void pulsar_message_set_replication_clusters(pulsar_message_t *message, const char **clusters, + size_t size); + +/** + * Do not replicate this message + * @param flag if true, disable replication, otherwise use default + * replication + */ +PULSAR_PUBLIC void pulsar_message_disable_replication(pulsar_message_t *message, int flag); + +/// Accessor for built messages + +/** + * Return the properties attached to the message. + * Properties are application defined key/value pairs that will be attached to the message + * + * @return an unmodifiable view of the properties map + */ +PULSAR_PUBLIC pulsar_string_map_t *pulsar_message_get_properties(pulsar_message_t *message); + +/** + * Check whether the message has a specific property attached. + * + * @param name the name of the property to check + * @return true if the message has the specified property + * @return false if the property is not defined + */ +PULSAR_PUBLIC int pulsar_message_has_property(pulsar_message_t *message, const char *name); + +/** + * Get the value of a specific property + * + * @param name the name of the property + * @return the value of the property or null if the property was not defined + */ +PULSAR_PUBLIC const char *pulsar_message_get_property(pulsar_message_t *message, const char *name); + +/** + * Get the content of the message + * + * + * @return the pointer to the message payload + */ +PULSAR_PUBLIC const void *pulsar_message_get_data(pulsar_message_t *message); + +/** + * Get the length of the message + * + * @return the length of the message payload + */ +PULSAR_PUBLIC uint32_t pulsar_message_get_length(pulsar_message_t *message); + +/** + * Get the unique message ID associated with this message. + * + * The message id can be used to univocally refer to a message without having to keep the entire payload + * in memory. + * + * Only messages received from the consumer will have a message id assigned. + * + */ +PULSAR_PUBLIC pulsar_message_id_t *pulsar_message_get_message_id(pulsar_message_t *message); + +/** + * Get the partition key for this message + * @return key string that is hashed to determine message's topic partition + */ +PULSAR_PUBLIC const char *pulsar_message_get_partitionKey(pulsar_message_t *message); +PULSAR_PUBLIC int pulsar_message_has_partition_key(pulsar_message_t *message); + +/** + * Get the ordering key of the message for message dispatch in Key_Shared mode. + * Partition key Will be used if ordering key not specified + */ +PULSAR_PUBLIC const char *pulsar_message_get_orderingKey(pulsar_message_t *message); +PULSAR_PUBLIC int pulsar_message_has_ordering_key(pulsar_message_t *message); + +/** + * Get the UTC based timestamp in milliseconds referring to when the message was published by the client + * producer + */ +PULSAR_PUBLIC uint64_t pulsar_message_get_publish_timestamp(pulsar_message_t *message); + +/** + * Get the event timestamp associated with this message. It is set by the client producer. + */ +PULSAR_PUBLIC uint64_t pulsar_message_get_event_timestamp(pulsar_message_t *message); + +PULSAR_PUBLIC const char *pulsar_message_get_topic_name(pulsar_message_t *message); + +PULSAR_PUBLIC int pulsar_message_get_redelivery_count(pulsar_message_t *message); + +PULSAR_PUBLIC int pulsar_message_has_schema_version(pulsar_message_t *message); + +PULSAR_PUBLIC const char *pulsar_message_get_schemaVersion(pulsar_message_t *message); + +PULSAR_PUBLIC void pulsar_message_set_schema_version(pulsar_message_t *message, const char *schemaVersion); + +#ifdef __cplusplus +} +#endif Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZAACgkQT0AbyNP5 ++1VFfA//UcAwF5SbCDiLSCzs2lPtgxJcXzVjL+6KRhO1N78ZZxDdF/dzem0CoGfH +7RNO6a8+z3wdAHxRr/M4vYwN0iXzehIoTi3LTU7XMV9/Qbujrxg9L1yafTHKNsTB +sKDhoBmXubTlPbifxiovlEvwSaDlAIH6dfag5DnZG7ZpeVFw60Vb+4nxRDF9JX6d +LggtKgMwBpWuCTIC68Eli9g0plaYuLpR9oSF9168CerrwSfAdZkTdmq6v1PG0a6h +aJDRtj+YVHmb+j0hzQXR//1LtCcR6x/YWbz4ergcG6hAFsZdHkDC7oRDIDnYmyjx +PnhDmhl6nRkkwbs1bpsPsAclQzrUIAwdsDSZhbdORGceBWm68gKbnISlD8rEdcLM +olAY9Y0lReLD03SM7LmgR0txwY4FOmvqkjzoEgYWnObkP26vq/nqbMd5sdGhVhFM +8zC/nLIivB14RXVj/cT+yAb4DTPHU5xnd5gnIaZtnBd49NUVDFE+w7LvT+11r0Q8 +DEwwy4UqntO/uJ/Nkqrid66PDd34B3XsZlBE7L+OzfhLY+8vNEi1tLyMfmJ2GayF +pBbGH+znGYZEzGdNyPyD6ijQN6gCYaBFJvn+yJThY2T8vr/WNTjY8tGKMyTZnHWo +sGs7NK2/Q8xwi16VGT86kmHS4LIz14KwKrzUuwzhoH2N4MUwgqI= +=d63P +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +63a00aa0e98ea42ae68b4212a5fd93f1e20cb1b96d61939aaa1ec889ae66ddf8a948d772ba150a56251511887f6b92efb9929f46a34f9b5579b8cc9ea9682dc3 ./x86-windows-static/include/pulsar/c/message.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_id.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_id.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_id.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,58 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include <pulsar/defines.h> +#include <stddef.h> +#include <stdint.h> + +typedef struct _pulsar_message_id pulsar_message_id_t; + +/** + * MessageId representing the "earliest" or "oldest available" message stored in the topic + */ +PULSAR_PUBLIC const pulsar_message_id_t *pulsar_message_id_earliest(); + +/** + * MessageId representing the "latest" or "last published" message in the topic + */ +PULSAR_PUBLIC const pulsar_message_id_t *pulsar_message_id_latest(); + +/** + * Serialize the message id into a binary string for storing + */ +PULSAR_PUBLIC void *pulsar_message_id_serialize(pulsar_message_id_t *messageId, int *len); + +/** + * Deserialize a message id from a binary string + */ +PULSAR_PUBLIC pulsar_message_id_t *pulsar_message_id_deserialize(const void *buffer, uint32_t len); + +PULSAR_PUBLIC char *pulsar_message_id_str(pulsar_message_id_t *messageId); + +PULSAR_PUBLIC void pulsar_message_id_free(pulsar_message_id_t *messageId); + +#ifdef __cplusplus +} +#endif \ No newline at end of file Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_id.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_id.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_id.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZEACgkQT0AbyNP5 ++1W7Zw//eUjoIsfDtSp9J+9WvE/xsXm+gGw1EZ6PhYvjy/Z6Y4ICGRA02QUzpwye +jaIm5xudzG4b9TB5pePIn1lfjWoyUkNhqNBSdVjR9O3ToEAAyhOKrbLAUf+HUpkA +gC/HhdPt4s2xgqVPM1xA8FpnJzuCwH6W4QPiAKKmDth34X4ub6se3my/A2N90ZSo +5XP1Emo4n/DRBZ12+OcRxM4+Xetk/NMe/JZ2YDzMO4TGtsXq9LVP/+HdtIib3o1C +0RMpxGGtXuNUtjq2ytN0Pilx9/CCc6cDCQjXUML+6gEkmJre+U0tqkE5Rlfyw/D/ +RR9AinH6K9rx1na1PHZ6W2TUClFPh3Xb7RBzUk1z5lS7fidD8YKzgArLpAECawpy +Fry1ugNaGvZwPuULxeakww9EdDqOGKsbAYQZ7qgr3arGDZGacCXHxyZnPxhKdXIO +G9r1itQznY+F8Cdk8NWJmsUqkGGszMOQc/pEN0sG0pRgZdzdUynT6GeozKdd4zVT +UI5uGZexY/EXcdB9OLeBlHAha2afS3m53r+BzbbR5dlNynN9tDncuySMdicLvU3J +2sMFNzZu++xsoqiiaert6jipSJJTrer7S/2us8LuDW+TbFQLCiq+LYLSqbo0kyEZ +CMGcWA2prFMJLI0IPpX/4QRnJdDd2pSsKf64F6gF3R3B1bv8A9o= +=9xwp +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_id.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_id.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_id.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +0d8a05223aa4cc241a0da53b414254b676c1e512af4e8e33ad093cd905ae2451ca60309695d4b1b7c2dec9b67abfceb8911e9682832b46a3dba30f8da7a5b3a4 ./x86-windows-static/include/pulsar/c/message_id.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_router.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_router.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_router.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,38 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#pragma once + +#include <pulsar/c/message.h> +#include <pulsar/defines.h> + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _pulsar_topic_metadata pulsar_topic_metadata_t; + +typedef int (*pulsar_message_router)(pulsar_message_t *msg, pulsar_topic_metadata_t *topicMetadata, + void *ctx); + +PULSAR_PUBLIC int pulsar_topic_metadata_get_num_partitions(pulsar_topic_metadata_t *topicMetadata); + +#ifdef __cplusplus +} +#endif \ No newline at end of file Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_router.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_router.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_router.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZAACgkQT0AbyNP5 ++1UOCQ/+OBhHrJBINRTEq2Hosn/1CI5/fIjVj+y4UDqCJ3xr71stKDkr1Lp83CEr +EuRz/dkqbKg7pQcWBkvUrmzl2p9j39tqojlsrf8ocYtvzkoNwwNBgSDphx0O0KCV +9NjcmrrUgOknJjkJdr8gY0D12Ce4t7nlNlMX8zXBut5aefb1pev968nCHjGdOXvU +8zFwslhFPYP0xDewWan/yiMTp2M86ffG288U/UKhXjGTikd4JVR818AUvmZovHOH +RUy5iOO4pr+P2PZV9iWILsezNkm7P/tzr20tSMlz2/QhETnpm33/sPnzvPlbe12s ++p4sUpNJuh0r9D2A/dCfXMOS9yadZLeaUoAUCKItWOEnSVxm3y+ThTsc+n4r520C +AfdOJPS3/eYvvis8U50fBLEZcFWwAvOrdCxZq8FzBu9gWRO3PJWi52h0ZaEqqGG2 +A+AUFET+/5J9MoRTbX1XDGH8PxPAmcaY2zhdZzj8fKk6/CQyrnPnuRK4YN/OBtHy +8wjg7XwUF74N6lALMUzyszx4AZNteYW4tLRQO+hVB5oD7v7JIUrHZISuB94rrlTE +W6nbhjFcUllCT8S/rGu3k9WLS54ziJD1gyLr2KHOzqMV5WCMAO3m1uZ1BYbR1Vft +mEhkfotv9ibupkaooI88PYRtbrH8r4dcqD6Rr14CWUgmOYm0LmI= +=1aQK +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_router.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_router.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/message_router.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +515f5964e5adfc6dd00702e0647b5988e34014dfd00b1c61ce25582c845dbf0202acd2142fe56a1801b871f6118cbf6005bd9d78cdfd9fe5564078b100a1ab78 ./x86-windows-static/include/pulsar/c/message_router.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,129 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include <pulsar/c/message.h> +#include <pulsar/c/result.h> +#include <pulsar/defines.h> +#include <stdint.h> + +typedef struct _pulsar_producer pulsar_producer_t; + +typedef void (*pulsar_send_callback)(pulsar_result, pulsar_message_id_t *msgId, void *ctx); +typedef void (*pulsar_close_callback)(pulsar_result, void *ctx); +typedef void (*pulsar_flush_callback)(pulsar_result, void *ctx); + +/** + * @return the topic to which producer is publishing to + */ +PULSAR_PUBLIC const char *pulsar_producer_get_topic(pulsar_producer_t *producer); + +/** + * @return the producer name which could have been assigned by the system or specified by the client + */ +PULSAR_PUBLIC const char *pulsar_producer_get_producer_name(pulsar_producer_t *producer); + +/** + * Publish a message on the topic associated with this Producer. + * + * This method will block until the message will be accepted and persisted + * by the broker. In case of errors, the client library will try to + * automatically recover and use a different broker. + * + * If it wasn't possible to successfully publish the message within the sendTimeout, + * an error will be returned. + * + * This method is equivalent to asyncSend() and wait until the callback is triggered. + * + * @param msg message to publish + * @return ResultOk if the message was published successfully + * @return ResultWriteError if it wasn't possible to publish the message + */ +PULSAR_PUBLIC pulsar_result pulsar_producer_send(pulsar_producer_t *producer, pulsar_message_t *msg); + +/** + * Asynchronously publish a message on the topic associated with this Producer. + * + * This method will initiate the publish operation and return immediately. The + * provided callback will be triggered when the message has been be accepted and persisted + * by the broker. In case of errors, the client library will try to + * automatically recover and use a different broker. + * + * If it wasn't possible to successfully publish the message within the sendTimeout, the + * callback will be triggered with a Result::WriteError code. + * + * @param msg message to publish + * @param callback the callback to get notification of the completion + */ +PULSAR_PUBLIC void pulsar_producer_send_async(pulsar_producer_t *producer, pulsar_message_t *msg, + pulsar_send_callback callback, void *ctx); + +/** + * Get the last sequence id that was published by this producer. + * + * This represent either the automatically assigned or custom sequence id (set on the MessageBuilder) that + * was published and acknowledged by the broker. + * + * After recreating a producer with the same producer name, this will return the last message that was + * published in + * the previous producer session, or -1 if there no message was ever published. + * + * @return the last sequence id published by this producer + */ +PULSAR_PUBLIC int64_t pulsar_producer_get_last_sequence_id(pulsar_producer_t *producer); + +/** + * Close the producer and release resources allocated. + * + * No more writes will be accepted from this producer. Waits until + * all pending write requests are persisted. In case of errors, + * pending writes will not be retried. + * + * @return an error code to indicate the success or failure + */ +PULSAR_PUBLIC pulsar_result pulsar_producer_close(pulsar_producer_t *producer); + +/** + * Close the producer and release resources allocated. + * + * No more writes will be accepted from this producer. The provided callback will be + * triggered when all pending write requests are persisted. In case of errors, + * pending writes will not be retried. + */ +PULSAR_PUBLIC void pulsar_producer_close_async(pulsar_producer_t *producer, pulsar_close_callback callback, + void *ctx); + +// Flush all the messages buffered in the client and wait until all messages have been successfully persisted. +PULSAR_PUBLIC pulsar_result pulsar_producer_flush(pulsar_producer_t *producer); + +PULSAR_PUBLIC void pulsar_producer_flush_async(pulsar_producer_t *producer, pulsar_flush_callback callback, + void *ctx); + +PULSAR_PUBLIC void pulsar_producer_free(pulsar_producer_t *producer); + +PULSAR_PUBLIC int pulsar_producer_is_connected(pulsar_producer_t *producer); + +#ifdef __cplusplus +} +#endif Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZEACgkQT0AbyNP5 ++1Vd4Q//aH4zDYMs6sF0ROay6JWiU1HnSqR1yUcfD7qZ0GZTvMXcPR1ssNjE0bK+ +Os8MDb0y3zFSiKDvG0UajTkbtAVuLjtdA4CaddR3oaarSdKJyGLbD9Yc0YMQCVjX +kkEn9QtOIXmhlRmzbXtwovctkLrW3anbKiteRnEhSX/zt7rReq2LLnDCU9I1FAhd ++pJr3/quU/kvYB/F2Gj3gH5USiOiOwqExLIrOVJqNIB8gawOQ+lSFA6SOoKsGLCI +Y+at9eY2u0qfEhuW/01Hyrh+SsfFyspTXpVP9I3prNY9cDT5MaNWwQUxbbeYF7fs +nHh4JeOfqEwhB2D//b4EGusrD9TldrwsZntIrMeYF4UgCeEHuX5dqbHIPm2eQ69o +01QUWD/QunA9J/fl0ky0HKtzzb9m4pLQRi2qX9RZtBf5fOCaFdaalv5k1yapxvEZ +5QVXiehSGS2hUrNnzQd7uI6BQWlSES3skYovJsqGdZh4Ew/pPZzsPs8qizK/9Dv6 ++CyMvYE52Z6gT1nf/ejDcD1J/FApsC1A70+JUCBX/kjgOZqlnUWPZN9SXSpcERRn +AZgvz2rqOJhag/DEp4lZXu04gZVnZYl+Ac5k+xOv66u6HPGXpfT9S8Z1AhLFeXkr +9g89rgIEmncMtIDI1EeosUNM+MH/l4B4aKJoP/iPAk32MjAjzbg= +=8MAa +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +71ad5521e4f882173109c3bc0bf201649ed9c290e760600af68a3636a8cafac08dca0ba110c5e47a35abbba91807cb30ddf53cf76b5c85b47e76d26546760abc ./x86-windows-static/include/pulsar/c/producer.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer_configuration.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer_configuration.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer_configuration.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,225 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#pragma once + +#include <pulsar/c/message_router.h> +#include <pulsar/defines.h> +#include <stdint.h> + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum +{ + pulsar_UseSinglePartition, + pulsar_RoundRobinDistribution, + pulsar_CustomPartition +} pulsar_partitions_routing_mode; + +typedef enum +{ + pulsar_Murmur3_32Hash, + pulsar_BoostHash, + pulsar_JavaStringHash +} pulsar_hashing_scheme; + +typedef enum +{ + pulsar_CompressionNone = 0, + pulsar_CompressionLZ4 = 1, + pulsar_CompressionZLib = 2, + pulsar_CompressionZSTD = 3, + pulsar_CompressionSNAPPY = 4 +} pulsar_compression_type; + +typedef enum +{ + pulsar_None = 0, + pulsar_String = 1, + pulsar_Json = 2, + pulsar_Protobuf = 3, + pulsar_Avro = 4, + pulsar_Boolean = 5, + pulsar_Int8 = 6, + pulsar_Int16 = 7, + pulsar_Int32 = 8, + pulsar_Int64 = 9, + pulsar_Float32 = 10, + pulsar_Float64 = 11, + pulsar_KeyValue = 15, + pulsar_Bytes = -1, + pulsar_AutoConsume = -3, + pulsar_AutoPublish = -4, +} pulsar_schema_type; + +typedef enum +{ + // This is the default option to fail send if crypto operation fails + pulsar_ProducerFail, + // Ignore crypto failure and proceed with sending unencrypted messages + pulsar_ProducerSend +} pulsar_producer_crypto_failure_action; + +typedef struct _pulsar_producer_configuration pulsar_producer_configuration_t; + +typedef struct _pulsar_crypto_key_reader pulsar_crypto_key_reader; + +PULSAR_PUBLIC pulsar_producer_configuration_t *pulsar_producer_configuration_create(); + +PULSAR_PUBLIC void pulsar_producer_configuration_free(pulsar_producer_configuration_t *conf); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_producer_name(pulsar_producer_configuration_t *conf, + const char *producerName); + +PULSAR_PUBLIC const char *pulsar_producer_configuration_get_producer_name( + pulsar_producer_configuration_t *conf); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_send_timeout(pulsar_producer_configuration_t *conf, + int sendTimeoutMs); + +PULSAR_PUBLIC int pulsar_producer_configuration_get_send_timeout(pulsar_producer_configuration_t *conf); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_initial_sequence_id( + pulsar_producer_configuration_t *conf, int64_t initialSequenceId); + +PULSAR_PUBLIC int64_t +pulsar_producer_configuration_get_initial_sequence_id(pulsar_producer_configuration_t *conf); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_compression_type( + pulsar_producer_configuration_t *conf, pulsar_compression_type compressionType); + +PULSAR_PUBLIC pulsar_compression_type +pulsar_producer_configuration_get_compression_type(pulsar_producer_configuration_t *conf); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_schema_info(pulsar_producer_configuration_t *conf, + pulsar_schema_type schemaType, + const char *name, const char *schema, + pulsar_string_map_t *properties); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_max_pending_messages( + pulsar_producer_configuration_t *conf, int maxPendingMessages); +PULSAR_PUBLIC int pulsar_producer_configuration_get_max_pending_messages( + pulsar_producer_configuration_t *conf); + +/** + * Set the number of max pending messages across all the partitions + * <p> + * This setting will be used to lower the max pending messages for each partition + * ({@link #setMaxPendingMessages(int)}), if the total exceeds the configured value. + * + * @param maxPendingMessagesAcrossPartitions + */ +PULSAR_PUBLIC void pulsar_producer_configuration_set_max_pending_messages_across_partitions( + pulsar_producer_configuration_t *conf, int maxPendingMessagesAcrossPartitions); + +/** + * + * @return the maximum number of pending messages allowed across all the partitions + */ +PULSAR_PUBLIC int pulsar_producer_configuration_get_max_pending_messages_across_partitions( + pulsar_producer_configuration_t *conf); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_partitions_routing_mode( + pulsar_producer_configuration_t *conf, pulsar_partitions_routing_mode mode); + +PULSAR_PUBLIC pulsar_partitions_routing_mode +pulsar_producer_configuration_get_partitions_routing_mode(pulsar_producer_configuration_t *conf); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_message_router(pulsar_producer_configuration_t *conf, + pulsar_message_router router, void *ctx); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_hashing_scheme(pulsar_producer_configuration_t *conf, + pulsar_hashing_scheme scheme); + +PULSAR_PUBLIC pulsar_hashing_scheme +pulsar_producer_configuration_get_hashing_scheme(pulsar_producer_configuration_t *conf); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_lazy_start_partitioned_producers( + pulsar_producer_configuration_t *conf, int useLazyStartPartitionedProducers); + +PULSAR_PUBLIC int pulsar_producer_configuration_get_lazy_start_partitioned_producers( + pulsar_producer_configuration_t *conf); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_block_if_queue_full( + pulsar_producer_configuration_t *conf, int blockIfQueueFull); + +PULSAR_PUBLIC int pulsar_producer_configuration_get_block_if_queue_full( + pulsar_producer_configuration_t *conf); + +// Zero queue size feature will not be supported on consumer end if batching is enabled +PULSAR_PUBLIC void pulsar_producer_configuration_set_batching_enabled(pulsar_producer_configuration_t *conf, + int batchingEnabled); + +PULSAR_PUBLIC int pulsar_producer_configuration_get_batching_enabled(pulsar_producer_configuration_t *conf); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_batching_max_messages( + pulsar_producer_configuration_t *conf, unsigned int batchingMaxMessages); + +PULSAR_PUBLIC unsigned int pulsar_producer_configuration_get_batching_max_messages( + pulsar_producer_configuration_t *conf); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_batching_max_allowed_size_in_bytes( + pulsar_producer_configuration_t *conf, unsigned long batchingMaxAllowedSizeInBytes); + +PULSAR_PUBLIC unsigned long pulsar_producer_configuration_get_batching_max_allowed_size_in_bytes( + pulsar_producer_configuration_t *conf); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_batching_max_publish_delay_ms( + pulsar_producer_configuration_t *conf, unsigned long batchingMaxPublishDelayMs); + +PULSAR_PUBLIC unsigned long pulsar_producer_configuration_get_batching_max_publish_delay_ms( + pulsar_producer_configuration_t *conf); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_property(pulsar_producer_configuration_t *conf, + const char *name, const char *value); + +PULSAR_PUBLIC int pulsar_producer_is_encryption_enabled(pulsar_producer_configuration_t *conf); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_default_crypto_key_reader( + pulsar_producer_configuration_t *conf, const char *public_key_path, const char *private_key_path); + +PULSAR_PUBLIC pulsar_producer_crypto_failure_action +pulsar_producer_configuration_get_crypto_failure_action(pulsar_producer_configuration_t *conf); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_crypto_failure_action( + pulsar_producer_configuration_t *conf, pulsar_producer_crypto_failure_action cryptoFailureAction); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_encryption_key(pulsar_producer_configuration_t *conf, + const char *key); + +PULSAR_PUBLIC void pulsar_producer_configuration_set_chunking_enabled(pulsar_producer_configuration_t *conf, + int chunkingEnabled); + +PULSAR_PUBLIC int pulsar_producer_configuration_is_chunking_enabled(pulsar_producer_configuration_t *conf); + +// const CryptoKeyReaderPtr getCryptoKeyReader() const; +// ProducerConfiguration &setCryptoKeyReader(CryptoKeyReaderPtr cryptoKeyReader); +// +// ProducerCryptoFailureAction getCryptoFailureAction() const; +// ProducerConfiguration &setCryptoFailureAction(ProducerCryptoFailureAction action); +// +// std::set <std::string> &getEncryptionKeys(); +// int isEncryptionEnabled() const; +// ProducerConfiguration &addEncryptionKey(std::string key); + +#ifdef __cplusplus +} +#endif Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer_configuration.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer_configuration.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer_configuration.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZEACgkQT0AbyNP5 ++1VIrA//cOxpGrC2yyW4x/5882i2fPzR8+Ag7ZI9AqTakcl26ajOUYeinnmP20gT +6ximulajlttKVn6FAxeJHCxSQ4EU7hEkvXH3NRyQ5cqiQ0sdluFRuxJ8hOEdnPz8 +R2eX3zaiufyhbRb7aGqXPGNwbdpryCI+dQ89QHIkyVSSR4w1IDLg48Dn+7YKzk8n +ktdOhmgyV5ueRpuPiop+sPmHsL0GqUDXYaBFOieXbURuhLYkmHGsAQPzvQaaZnjf +OsSIIZqpWVOcZQd7Xhl/lYYyVjuMrmaT41j4pzN1U+Y+EsvkdHE/sSViobjIjFnZ +8OuK39JjzVbRVs6rcSGlEIPZPXcpWVQsOpAkzKGApeqAoBa6PB+V6/LKOzxA0fAW +UYkobc9bxt/7QGuPCI75jXnni/F+coIuzVjVe7w97633ZQS49LJ7Ur9w0rlqwArv +/iBxhLuXwq6tOTf8ctjeiFqu1kM6+Rwjfr0+17va56/Ox6N+e71VWhSY7hAi6o97 +Hldr3ylNQeb8HTka4qABDCQa/UtDXdeSF1EkW+uRb7UxL6yTXqe5iPP5SOAFfroY +fPAuerCKY4VbRexLMvbyIm9dWX6OWQiFYt8CHpwVU1k/AKUktp6/40+oz/9UbdzC +2FpAv+bylQ5pxJNaVDwBItEOrQjhlY9wG+YLwDIRKD5vsxwbtg8= +=lRCy +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer_configuration.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer_configuration.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/producer_configuration.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +712d2ca9dc38369d1e20b697eccb5244651c58d58f9e0c991d3b34e48498f92ff9b5710b5ef25310b74f19fbdddcd41e831379fa29e9e8a9a56afad5341a0d3f ./x86-windows-static/include/pulsar/c/producer_configuration.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,119 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +#pragma once + +#include <pulsar/c/message.h> +#include <pulsar/c/result.h> +#include <pulsar/defines.h> + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _pulsar_reader pulsar_reader_t; + +typedef void (*pulsar_result_callback)(pulsar_result, void *); + +/** + * @return the topic this reader is reading from + */ +PULSAR_PUBLIC const char *pulsar_reader_get_topic(pulsar_reader_t *reader); + +/** + * Read a single message. + * + * If a message is not immediately available, this method will block until a new + * message is available. + * + * @param msg a non-const reference where the received message will be copied + * @return ResultOk when a message is received + * @return ResultInvalidConfiguration if a message listener had been set in the configuration + */ +PULSAR_PUBLIC pulsar_result pulsar_reader_read_next(pulsar_reader_t *reader, pulsar_message_t **msg); + +/** + * Read a single message + * + * @param msg a non-const reference where the received message will be copied + * @param timeoutMs the receive timeout in milliseconds + * @return ResultOk if a message was received + * @return ResultTimeout if the receive timeout was triggered + * @return ResultInvalidConfiguration if a message listener had been set in the configuration + */ +PULSAR_PUBLIC pulsar_result pulsar_reader_read_next_with_timeout(pulsar_reader_t *reader, + pulsar_message_t **msg, int timeoutMs); + +/** + * Reset the subscription associated with this reader to a specific message id. + * + * @param reader The reader + * @param messageId The message id can either be a specific message or represent the first or last messages in + * the topic. + * @param callback The callback for this async operation + * @param ctx The context for the callback + */ +PULSAR_PUBLIC void pulsar_reader_seek_async(pulsar_reader_t *reader, pulsar_message_id_t *messageId, + pulsar_result_callback callback, void *ctx); + +/** + * Reset the subscription asynchronously associated with this reader to a specific message id. + * + * @param reader The reader + * @param messageId The message id can either be a specific message or represent the first or last messages in + * the topic. + * @return Operation result + */ +PULSAR_PUBLIC pulsar_result pulsar_reader_seek(pulsar_reader_t *reader, pulsar_message_id_t *messageId); + +/** + * Reset the subscription associated with this reader to a specific message publish time. + * + * @param reader The reader + * @param timestamp The message publish time where to reposition the subscription. The timestamp format should + * be Unix time in milliseconds. + * @param callback The callback for this async operation + * @param ctx The context for the callback + */ +PULSAR_PUBLIC void pulsar_reader_seek_by_timestamp_async(pulsar_reader_t *reader, uint64_t timestamp, + pulsar_result_callback callback, void *ctx); + +/** + * Reset the subscription asynchronously associated with this reader to a specific message publish time. + * + * @param reader The reader + * @param timestamp The message publish time where to reposition the subscription. The timestamp format should + * be Unix time in milliseconds. + * @return Operation result + */ +PULSAR_PUBLIC pulsar_result pulsar_reader_seek_by_timestamp(pulsar_reader_t *reader, uint64_t timestamp); + +PULSAR_PUBLIC pulsar_result pulsar_reader_close(pulsar_reader_t *reader); + +PULSAR_PUBLIC void pulsar_reader_close_async(pulsar_reader_t *reader, pulsar_result_callback callback, + void *ctx); + +PULSAR_PUBLIC void pulsar_reader_free(pulsar_reader_t *reader); + +PULSAR_PUBLIC pulsar_result pulsar_reader_has_message_available(pulsar_reader_t *reader, int *available); + +PULSAR_PUBLIC int pulsar_reader_is_connected(pulsar_reader_t *reader); + +#ifdef __cplusplus +} +#endif Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xY8ACgkQT0AbyNP5 ++1Vieg/+LvwRX51XXYt0dgmMKPqR1jKUu/ub+LqOVNmWKW7TJxhVbcAtLLJ5sZtt +HVOV9mSXQDJD11A+Odk1rTbFVCCS9xq9IxRgu5/UEu4DJYtUxk9/f4y6R00gfUYp +yz3sa2buqq7OOcyMpYTPitbgCF8TEPspYO44YBcDOSayWalEOXurDJhw6Tqu930j +NH6NBy598JwvzXpKgcsYUiulLPPs7Rv67A51oJ68XsOrPsQsRBTQKZC85ULX43Wb +cC0qjGQjP8r3JTulNg7bUmTNPL3hhNIxS6D/F0tGjHvsHVoGbZm6z+TfktnJbAGB +qyHED7QvmIDHAArdXWq+6lBrV2Pk2GKdgf3bg38gTNRYellER/hM15CiX6553ltg +f2Y7IIjrMHCSdA3CqhMTAO6Vcvj/JNBK5c+s5mOCQN3zxA0ktgzW2BdY59bDk9aS +i3STQDRudTmO+TilwsRkTusnnhr9+cZEHC4pLIi8K5hVooZpWT7Pn7CoVp9trJuN +3n02S4rHoAL/buI6RnxNqNoFerPUDubbxdw3Q1OVGZFTjN8NhMD131iZHDB000cH +7uD5tKgwoC0ih0Wq/MtTE/fdHPmrRecjbfHAEoPdVuSKaSUKAJFEiTfTVPuzL7MQ +L6FSt5LTNNuiGUcGzc7mGtS2H5mlNjrBDSE5Gd0XVggR+kgAN4c= +=9lvY +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +b5ae8bdba582d76881c2bef91ef6ab94ec17a27a4bc5a243a2e150b5fb823b9a197f659c2457bfa2542e663cb01d8872ece2a97762e1abfeef520ad454b9272e ./x86-windows-static/include/pulsar/c/reader.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader_configuration.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader_configuration.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader_configuration.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,94 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#pragma once + +#include <pulsar/c/message.h> +#include <pulsar/c/reader.h> +#include <pulsar/defines.h> + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _pulsar_reader_configuration pulsar_reader_configuration_t; + +typedef void (*pulsar_reader_listener)(pulsar_reader_t *reader, pulsar_message_t *msg, void *ctx); + +PULSAR_PUBLIC pulsar_reader_configuration_t *pulsar_reader_configuration_create(); + +PULSAR_PUBLIC void pulsar_reader_configuration_free(pulsar_reader_configuration_t *configuration); + +/** + * A message listener enables your application to configure how to process + * messages. A listener will be called in order for every message received. + */ +PULSAR_PUBLIC void pulsar_reader_configuration_set_reader_listener( + pulsar_reader_configuration_t *configuration, pulsar_reader_listener listener, void *ctx); + +PULSAR_PUBLIC int pulsar_reader_configuration_has_reader_listener( + pulsar_reader_configuration_t *configuration); + +/** + * Sets the size of the reader receive queue. + * + * The consumer receive queue controls how many messages can be accumulated by the Consumer before the + * application calls receive(). Using a higher value could potentially increase the consumer throughput + * at the expense of bigger memory utilization. + * + * Setting the consumer queue size as zero decreases the throughput of the consumer, by disabling + * pre-fetching of + * messages. This approach improves the message distribution on shared subscription, by pushing messages + * only to + * the consumers that are ready to process them. Neither receive with timeout nor Partitioned Topics can + * be + * used if the consumer queue size is zero. The receive() function call should not be interrupted when + * the consumer queue size is zero. + * + * Default value is 1000 messages and should be good for most use cases. + * + * @param size + * the new receiver queue size value + */ +PULSAR_PUBLIC void pulsar_reader_configuration_set_receiver_queue_size( + pulsar_reader_configuration_t *configuration, int size); + +PULSAR_PUBLIC int pulsar_reader_configuration_get_receiver_queue_size( + pulsar_reader_configuration_t *configuration); + +PULSAR_PUBLIC void pulsar_reader_configuration_set_reader_name(pulsar_reader_configuration_t *configuration, + const char *readerName); + +PULSAR_PUBLIC const char *pulsar_reader_configuration_get_reader_name( + pulsar_reader_configuration_t *configuration); + +PULSAR_PUBLIC void pulsar_reader_configuration_set_subscription_role_prefix( + pulsar_reader_configuration_t *configuration, const char *subscriptionRolePrefix); + +PULSAR_PUBLIC const char *pulsar_reader_configuration_get_subscription_role_prefix( + pulsar_reader_configuration_t *configuration); + +PULSAR_PUBLIC void pulsar_reader_configuration_set_read_compacted( + pulsar_reader_configuration_t *configuration, int readCompacted); + +PULSAR_PUBLIC int pulsar_reader_configuration_is_read_compacted(pulsar_reader_configuration_t *configuration); + +#ifdef __cplusplus +} +#endif Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader_configuration.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader_configuration.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader_configuration.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZIACgkQT0AbyNP5 ++1VlhQ//a2cZIDjQHCUYmMlqYc2OHtmGgqi/O1Amou+DHahr2G1pjzldEOtywWX9 +MeaB0jXFI+4DrZb4LMb+nsGgWRQTWsB+Bh5mqfJDCSRZz1M9TAbwo0Cic4k84aMm +7sioLlNQpGibRfkftTRBjEOJN730THq6pO6Az8g5sCvH4KZlWJTCHtNgHBttXZIR +2p/qNO6qBiQAOKE2oD4LQ3qNR4zYpaZ1PHJtBqNSnNDYyEaF6qBWYWODre7rytgb +2I23Ih91/O9v9Iz60BcWrooFNhuObSi5mjGX5VdZYnyCfK1ucEfBZydOULYMGcY6 +g8CSSqTFRbLCwKwXPGUcmne8v2iGXkP7M4ivFPUVQ0OUQM45xRElTZAHTmZhYvHs +UDUUbmzyaVkviS1nXtGw7+akKyxcCzBBi1lsybjbusVH8g3Mc294et88vfjeHWFF +/aEE1hh6LFFDPRueCkMNLPA7v93NS8TzA+NqSNZu68cEKBSEV1gmaB2AU3KRvUNN +pSpMAkCCYdvJP+T2X08+PL0gqN2CWFUxZCUXUVRHpkms7dh0xjh3kvzFr7pNe7Iq +ZEYwfqMvWtML33FIBXQKLV+xj953xVcBjLE6q36P9C91A7HPw9oILUVNZbfIToA2 +S2VGeRCBXam8jtKB1HZXP1vbYPQ5ZY4bWog8Ebh7NQbe2p/TXWc= +=h97S +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader_configuration.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader_configuration.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/reader_configuration.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +95c371beea7e30c2ffbfd5e9d4fc367a8d57953ec24bbeae7dc2408969a30248ee2ed6e7602601ae8f825cd5f10874c20e71cba86699a8a81c0b0b4c8aa4f464 ./x86-windows-static/include/pulsar/c/reader_configuration.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/result.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/result.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/result.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,102 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#pragma once + +#include <pulsar/defines.h> + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum +{ + pulsar_result_Ok, /// Operation successful + + pulsar_result_UnknownError, /// Unknown error happened on broker + + pulsar_result_InvalidConfiguration, /// Invalid configuration + + pulsar_result_Timeout, /// Operation timed out + pulsar_result_LookupError, /// Broker lookup failed + pulsar_result_ConnectError, /// Failed to connect to broker + pulsar_result_ReadError, /// Failed to read from socket + + pulsar_result_AuthenticationError, /// Authentication failed on broker + pulsar_result_AuthorizationError, /// Client is not authorized to create producer/consumer + pulsar_result_ErrorGettingAuthenticationData, /// Client cannot find authorization data + + pulsar_result_BrokerMetadataError, /// Broker failed in updating metadata + pulsar_result_BrokerPersistenceError, /// Broker failed to persist entry + pulsar_result_ChecksumError, /// Corrupt message checksum failure + + pulsar_result_ConsumerBusy, /// Exclusive consumer is already connected + pulsar_result_NotConnected, /// Producer/Consumer is not currently connected to broker + pulsar_result_AlreadyClosed, /// Producer/Consumer is already closed and not accepting any operation + + pulsar_result_InvalidMessage, /// Error in publishing an already used message + + pulsar_result_ConsumerNotInitialized, /// Consumer is not initialized + pulsar_result_ProducerNotInitialized, /// Producer is not initialized + pulsar_result_ProducerBusy, /// Producer with same name is already connected + pulsar_result_TooManyLookupRequestException, /// Too Many concurrent LookupRequest + + pulsar_result_InvalidTopicName, /// Invalid topic name + pulsar_result_InvalidUrl, /// Client Initialized with Invalid Broker Url (VIP Url passed to Client + /// Constructor) + pulsar_result_ServiceUnitNotReady, /// Service Unit unloaded between client did lookup and + /// producer/consumer got + /// created + pulsar_result_OperationNotSupported, + pulsar_result_ProducerBlockedQuotaExceededError, /// Producer is blocked + pulsar_result_ProducerBlockedQuotaExceededException, /// Producer is getting exception + pulsar_result_ProducerQueueIsFull, /// Producer queue is full + pulsar_result_MessageTooBig, /// Trying to send a messages exceeding the max size + pulsar_result_TopicNotFound, /// Topic not found + pulsar_result_SubscriptionNotFound, /// Subscription not found + pulsar_result_ConsumerNotFound, /// Consumer not found + pulsar_result_UnsupportedVersionError, /// Error when an older client/version doesn't support a required + /// feature + pulsar_result_TopicTerminated, /// Topic was already terminated + pulsar_result_CryptoError, /// Error when crypto operation fails + + pulsar_result_IncompatibleSchema, /// Specified schema is incompatible with the topic's schema + pulsar_result_ConsumerAssignError, /// Error when a new consumer connected but can't assign messages to + /// this + /// consumer + pulsar_result_CumulativeAcknowledgementNotAllowedError, /// Not allowed to call cumulativeAcknowledgement + /// in + /// Shared and Key_Shared subscription mode + pulsar_result_TransactionCoordinatorNotFoundError, /// Transaction coordinator not found + pulsar_result_InvalidTxnStatusError, /// Invalid txn status error + pulsar_result_NotAllowedError, /// Not allowed + pulsar_result_TransactionConflict, /// Transaction ack conflict + pulsar_result_TransactionNotFound, /// Transaction not found + pulsar_result_ProducerFenced, /// Producer was fenced by broker + + pulsar_result_MemoryBufferIsFull, /// Client-wide memory limit has been reached + pulsar_result_Interrupted, /// Interrupted while waiting to dequeue +} pulsar_result; + +// Return string representation of result code +PULSAR_PUBLIC const char *pulsar_result_str(pulsar_result result); + +#ifdef __cplusplus +} +#endif Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/result.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/result.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/result.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZAACgkQT0AbyNP5 ++1XUXhAAkMgwyDbxioHuCC6x5DH6/8ShoFTsJn2E9uUbnPD4LAYhMNG+ydyhhgC/ +tKJ+HARar/NCvyaM89KyHEYnaOpGXJ4Ehn8sle241DVBmsBpHTp0CL8I1Kb9Hj/T +ZPAft/escSrWM4hdbmUu25J26sjMowEDDwQskoDQCyffevHJ5waNQYYuULGrbZ5l +rChkBzCe5L3mmsE3nO8MHq5+SIesOdhX0ty3OfNcLOFFxPOIyhORAoTWZpjmxNZK +955NTIwfiOU+/cLhLpdQbw/ZlooesXv0kOZf5hFb3c+1KrpvQk3ZGaJPccaVHqV0 +3k5tRrtKVka4lT87BGFF5FlcDpToL8CpzsAqfvF3I5ouakxyQWioFmXv9Aq6goa+ +dBNN8FY2EDejxsigphdfPLhvG3TNBUQ7DnqDgdQrBNCuj5Imf6AyLX4wUPj16Zsk +YuyM2wDvc5TcfexEudJzRTZl6IkVSvEEB4LoKLNuXunnooKwpYKIothLAcKHVbKg +G6BOcm3pFa+dXZdJdTIVyAZg3iJUljz3L98HCHFZSrzMu1LMXWqYH+oUQFk3Qm5/ +/9hgvoJX1OBp/ErWltcok21HVfem/gzcgg9dgqZ/clS8rpmDNfv2uOzQQPCNjWJ7 +Y9Dz000l2FXPFFBKN8C6sEnLX3hxM61q6CqiC/Of92pR53aku4I= +=5mmq +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/result.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/result.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/result.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +0e536f6995cbb27d8cf78d02e1c20703ed62bde53024dce17029735b191913321d7887cc5bdcf1f6c87d6529435c4a0c158e4c0c6b41f0a75fa70d01289f045c ./x86-windows-static/include/pulsar/c/result.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_list.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_list.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_list.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,41 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#pragma once + +#include <pulsar/defines.h> + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _pulsar_string_list pulsar_string_list_t; + +PULSAR_PUBLIC pulsar_string_list_t *pulsar_string_list_create(); +PULSAR_PUBLIC void pulsar_string_list_free(pulsar_string_list_t *list); + +PULSAR_PUBLIC int pulsar_string_list_size(pulsar_string_list_t *list); + +PULSAR_PUBLIC void pulsar_string_list_append(pulsar_string_list_t *list, const char *item); + +PULSAR_PUBLIC const char *pulsar_string_list_get(pulsar_string_list_t *map, int index); + +#ifdef __cplusplus +} +#endif \ No newline at end of file Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_list.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_list.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_list.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xY8ACgkQT0AbyNP5 ++1Vx5Q/+KPaAaXiU8zKFxnbyvp2logJ/sPGvqBrnvorKorVq1EXEYRY+fwIbdZCP +LaWrHPB3d09JCrurFUUGy5tgqVPVCWtImryQpPdASd1UPtfO8pPP4eQvqzMfY3JN +L3fxnpr8IfUtfzPnHfdrdvXhFRcohxL3q/YNIWrJKvGVp/E/7hKUk0hGYHdsb2wM +ru6bjMR+IlR763kPd1QzpLkljw5HT8Y+kfz0f/HrQVY3YC6MZwQL5Zs4cQIwU8XE +EP7VMa/O1prCNpaR/WvEp16tG0vUI7b6y8liI4XT6avzUoGDa7Yd6Sd9k0S+bXLT +SA1p48hNKUiG3+dhHliHC2HqQWH1iiiik4WbN9j+AmbfqizXLDbHtuclltATow+Y +o6lVCgECds6i1lMaeUBOf6I8oMTr2nKW1wTPDuPTZARQm2DApOU/P5sO7Vp2Ge7Q +kd25Q6xqXtNJ1x2gvUJIVgEELQoEjayt386xtPgo5YmLBSSVsmq0PGF91vdqN9uw +aDtiRB0VhA6Qz6hNUDj+/oxFDLbj6y0v9dAoeDAFzPBOKCViWj3ElQSUXJFt4yJ9 +giYUcyFgkf+JOXrVrX9d7Gd8m9qTJK9rcGVIxUAdkOtWcTY9bq8GhWOo0ur5k2t6 +44Ht3nN9kaOuMJLEXFx2Vz3bX8yQOT7qV1Fl7XvkT3Xx6JnRTsA= +=W2er +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_list.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_list.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_list.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +993cabe032a39d168e483952dfdca922e9d61e3c15b3c779e57b787926585024a115510992aca36ca5c3ccbd771d505c8d704d245f822454dd78d9d470f40571 ./x86-windows-static/include/pulsar/c/string_list.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_map.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_map.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_map.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,44 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#pragma once + +#include <pulsar/defines.h> + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _pulsar_string_map pulsar_string_map_t; + +PULSAR_PUBLIC pulsar_string_map_t *pulsar_string_map_create(); +PULSAR_PUBLIC void pulsar_string_map_free(pulsar_string_map_t *map); + +PULSAR_PUBLIC int pulsar_string_map_size(pulsar_string_map_t *map); + +PULSAR_PUBLIC void pulsar_string_map_put(pulsar_string_map_t *map, const char *key, const char *value); + +PULSAR_PUBLIC const char *pulsar_string_map_get(pulsar_string_map_t *map, const char *key); + +PULSAR_PUBLIC const char *pulsar_string_map_get_key(pulsar_string_map_t *map, int idx); +PULSAR_PUBLIC const char *pulsar_string_map_get_value(pulsar_string_map_t *map, int idx); + +#ifdef __cplusplus +} +#endif \ No newline at end of file Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_map.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_map.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_map.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZEACgkQT0AbyNP5 ++1Uq5w/5AX2KjrkA21Vmv1ZerBgA/4mC/J/MDxl3n2EuJs+EldDdG2EguphHnDzR +3vw4ebMWLfT/tlKgGY0C8fHDyaVFamGMT6t6ohfvHG/wfW0GIN2Erhld50BN9nf/ +Hj0H5iZVsV8sMqG9DAbUIzFci6je016mobn+Oz1414D96sXtaQyp0eZ3I71hs1Mp +aGSuQzawTSX1laY0RCZ1BwktmC/nITzTg7sjJnQNmsuFyYaIrk2O2GwYltgCVTdw +Pt1dhFqg8+VXmaY05+YNL3c5dcU8mq26SST/zLZQdiUeyk98FUOzVHcyBCf2cEUw +kn8TmDDjU/Y1oSR+7oijetht2Qx7bO1QS/z/2cD8ogsMtdPylK9l8Te56Jct6erR +dvdk3qYqTLa7HcsRov7p8OdlWKMVCo5g+J/vEi+Jm7edbyf07EkO+u/DzZX2DGnG ++3XZoNjd6WURLUj8TeOC2NF2dpWKNSS8w30aoLPvTFP9xIfnBUtAF3bcAArtawI2 +810JUS8O0hNRfux4x1SgdmeBDM4pr7jovJxHbqkX87vG12cXuNGRym9JBVlaDPBx +tZARpzdefOrzFsNZ/n8X0ib7jFvTknwlRpEUvRCqdgrspU3SuEq274Sc36WWA/Lc +ycZJRN6bQ5iC8HNpH/YyovTgZI9n6HDuvEScDShVwicTsK4SgzQ= +=kWGS +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_map.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_map.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/string_map.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +adca8ad1d1242f7954cbbb2abe13f1ef1a6327257e8d039f8f46092f0e83b0e63db1fd739627de1a7e79781acbbe157b33ded8936cf0ba1e9250f08aa7a02d18 ./x86-windows-static/include/pulsar/c/string_map.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/version.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/version.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/version.h Wed Nov 23 09:18:55 2022 @@ -0,0 +1,22 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#pragma once + +#include <pulsar/Version.h> Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/version.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/version.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x86-windows-static/include/pulsar/c/version.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIyBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZAACgkQT0AbyNP5 ++1Woiw/497TxglPs7yII9WYTiBtMPL7Ijm5JJSbMeydCemTFNVG3Muc0kUez+aRA +nM99jQDUZzpCAJkpzEd7TqzpAPn6d/2C7wTPy/m728jd9FiOv+HIjBLm9uDRxkZZ +T5rI1pCfBwXYVTqja2TMWfenW5OOD4VFK4xd7DFAfNXsidlyAD5S8760xrvNn/8b +GLooo+KyeFwSb75pnlQvSopJvs0Ge3Z4DjGvX9ZHYbChampLdF/I2bm5sWx2GEy5 +xjIi3zl2h6sQIrHq1W8CfXQeigMm7vxHt36UIZ6eHP8gbSAe1SCFoYohfXHYzvFJ +/uJnSk7du/0Znevawuq3FPXdPxb1AROwhSckecvXWNRV+I9/K70Yauw1jW3puidj +NBEVFY8LhbYrtbwtQJPr8Fw0hrzte/mfLOp6RJHGkxr3MDZ4KjHEQ9L73bNz8x9k +f+CFWT6hUchDh89zpZluGLzjEnaKEdpO7bYWWLxydcjwEbpQzcU8zmJKT+P3y+fs +pclwbpgiPexlLZo8dqswTEuHEgwBGfwEegG+HM4dmbcE3NzEvSbJdBsPp4wAUv5f +lmhESofFus3DH8uygCSYTKHHNxaPfuO6mK3G5ZQAIFwvAHvavpE5cbBONX+LW7pu +bXChikN2ht/fm77c3ktPpR4EdxCKb9F5QZQMxxHXvZWTq1yfSQ== +=UXvZ +-----END PGP SIGNATURE-----
