Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/consumer_configuration.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/consumer_configuration.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-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/x64-windows-static/include/pulsar/c/consumer_configuration.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/consumer_configuration.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/consumer_configuration.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZ4ACgkQT0AbyNP5 ++1UlDw/+L1MAnxyTT4ho7C+fhLtqRNjb77DHLy4rs7UEf0VRbDLQIeeMFJnipXch +XzuWwFGuPQo9O+IyKzKsNMjDRiF7e9MpTME28rIn0nzcusvSWWsv3Ale2x63IWVL +0dfOJOoARuMoD+ftOBh2Mh2Vs8Yvyr0mQFFnvSQJ3CaTCmC9r1YyLXLtK4b9Rtet +VTEMTn1x0Qc3EmcJxxNoEbIFO/R70dgdwuJPx1SS66hZWBvKkV/nhp1itsmTyq6L +rnx3fb/hPqAg2paMpaTljNy/FTgRQ7Ag5SoGHFNrcxara+hmey4oPRDnvx/VthU5 +HguY8nGzIZJcavmwtHSsLbQ5WzE42DEhMtBNdlqxkKXq5nTYt9rVPAv86iBiwnbS +SQZnLPRM1Mm+6pW7GviCFtTKMiMaDw1G1PBRJ21z4wWmFyoBFIvDCweSQ6nNcELv +2km0ta55/mmau7GE7cgwxO526iNtdfO/Gdq5/Q2s/vM5nUf5Su85HaI7c8/caBLx +66EuWJWvs3Qna6R5/IpOrnsBY/pO8ur9YDRVthwHtnN6vT9//rJcGkamfyDfME62 +CETSIbtnPlgI/A9mZIdCiSEACYmF0a01X7DN9BrYVWYclINWjeOeGNGpfBLplFyv +xd4hjaN6FnDEd5JSB4nvCs8oKOSHd1LH85S1xdCsbOpuQ5hfiX8= +=lSkP +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/consumer_configuration.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/consumer_configuration.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/consumer_configuration.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +b8cec6293170c94f2e9caa1d279712c6fa97120c197870fba75b4b63de693394ddc45ec1ab160c29b1b29f8a110a7dfa92c5b0557b5e29f7d674fe42fea0f6e1 ./x64-windows-static/include/pulsar/c/consumer_configuration.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-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/x64-windows-static/include/pulsar/c/message.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZ0ACgkQT0AbyNP5 ++1W6FRAAkGzGONr2aaPK5oLQdUM8CMX1faaR4TvW+7so1pM5542Fdw+IuhflcBfT +aoL6KxjvhuxXwlmpOXzRoGIYhI7+qE45XxjAhFU6rWJ6QDhBrFyZDCuFVhXHB64w +IUTFB5Su3PFuLk4zXiTeOu3pH/5ikVPiFTeA1NSYMsdrTjviynOEj1gqQLwwAdsw +eHIUUrT8taWuXCi+Ko/h645pw1UZWw4Xaxmx1mQyr3Sd2ii3fhh109fY5f8XA2OB +fQ3XKNS0qaT2OX0zmNpmZ3ioW+EHa+aAbyI0OJlvRyJNhYxrRht3Ys/s7s+fEG2X +CQspEJ4FwW207602J9SaMlO3fhoLzdHvsBnb6bukO8gGFbIhXrYR18TEBpOVx9GO +mDyCvWEg7IJLOMv8F+E8hMIWtS9jvtCzcnbc1u3tG7yVAKjrx0iFSL/8FyfeABr+ +N0xOFYwQJ5fGf9Lfq0svEmmeyLpLquNpVRA1VuqmPB/q2O1O6L2NWjEkSDSLzbbq +givgD+PoFa2ewxZ0CX3N/vgl32qPN0pRkKQSOXU/LVOG2z3Qr/x4wIZUEhMVT+2q +Z1xn+897wdupD5tRe3UVokaKT5hvCBSyvYgjMXOiK3tIfP9W25bvD1tlBzZBL+w7 +dfV6CWDaxTuN8xx0Ck6jKa8owL7ewOBHo00jVqoE8XhS6AFuSPg= +=8oHg +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +63a00aa0e98ea42ae68b4212a5fd93f1e20cb1b96d61939aaa1ec889ae66ddf8a948d772ba150a56251511887f6b92efb9929f46a34f9b5579b8cc9ea9682dc3 ./x64-windows-static/include/pulsar/c/message.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message_id.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message_id.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-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/x64-windows-static/include/pulsar/c/message_id.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message_id.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message_id.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZ4ACgkQT0AbyNP5 ++1V/qw/+LRxgBtfE+ghicOisb8bYl5H/am6U6ATj8oBtj0vwMhUg6WPqwRCpsHSg +iSc+WZQfZ/Pf7v/GnLxF4rY6pQOxeRU9Gdm91WfZg5S3sfPeGMg/4wDBt9mX7Lz6 +CkKOyLMMZ5ilB+/F7IUzLkSdB6OmpS+SzLIQtgUTiBDfrbk3JDo4MQSbpgbP3Xum +1e1X5p+foqicm1N3n8ugLVm9zv/O8lTNO3o719OpvpQgGXd0x2idUACt7kIv8MPM +pTQpFM41wjI8EfXupgjEJSgfB/gx5pkWnMk1Kb+5N5vHDqTIAJyJ0f86Agbml3vv +F2AQweTWG4SCic81P+EmU97cS4REUvugFLt56wEpg6R9lMPYhtLZw07a4oNpGL0m +G2hh5Wsa6qPVEBJ2vk+mG+iMiBvRuBXziXYO12CEvDsg/XhEamTiaQw3XxVFyNU2 +rPpVzZ7mDkAvZd1/zqTapiOjXjkzkr+KzGi+nKjVrPz0yfHg7LVeB4yQi9cqKI/x +GRWJk/R4dFoaEEim9OFd+9kp0WEd/AphN09V3wfDDzKaHn+ELQQrzK1Fp9bkM+CV +MgCotQUtUWyhXGhramJ7Fmdl89aYkS1ib1pNbgUcsuBtMcNwXUaBjIhEn6S4VCQv +LOGzW6ugqEmKDMkP4dMYgJyfm+rjkdU2AJfmSGczwdcSCwdDc1o= +=D9WG +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message_id.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message_id.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message_id.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +0d8a05223aa4cc241a0da53b414254b676c1e512af4e8e33ad093cd905ae2451ca60309695d4b1b7c2dec9b67abfceb8911e9682832b46a3dba30f8da7a5b3a4 ./x64-windows-static/include/pulsar/c/message_id.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message_router.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message_router.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-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/x64-windows-static/include/pulsar/c/message_router.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message_router.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message_router.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZ0ACgkQT0AbyNP5 ++1X2Yg/9Fsu/slwYj8yf1zjEJMkio0G8PFUpykui9IsIOPu4Fn2ysoKX6/NWvZNg +fi4UH7PbfeJzQC6p/q4rKgDi3qlEtObwgM9Dkdp6kCZ0xaAGTqxVwaDZdAchlEjv +wyIFX7R2GF2meX/8F14aTK3yPF3O+CKuWfeuF1D8zQhzoYDsHaTI0+I9F8OPmzCA +AwsBSPD64CoSVPfxiO7UHFU3L7olwmAkIyyJyKJJblNQmktOl9GDknQmqMD4cKgO +8FBxQ8H/Ch+j5Q9gEJ63Ly0EIGgyh3PjVeEEOXIhXan19yCVbFZD/rLo16w1vmCA +ZqQRzCTDHmYjJPXOjLs1HDcPk9Wlhbu2ICArRmoMQsoh82poyGgtuqQlZBXpymZu +ZwJgD9/gmMlR4pgn2XPKQ991mbGwjrnjyIjp7QJfSTyAYnnQBdemskoMWIsu/TwX +ljlwQjGsQRwkg+fpC+wNJ612saKt54UuGg7evqXtXl5o4v4h2XLW4cbs9iCPLWWQ +xpXuXgpRf8bH7Rvdi1ZSO0DE6wI2eRwzWXpqqqgYTflNA3IGAG0/SYfTxhSV9JE4 +AGRrskAr163DK0lFqFGl7cQs7ugQ+NOhtrRbV7ZFeBs79Zx2L9epx/yl4bABy2jC +44/H6RMizhTdZudziSsPKvaFHKXgDzrSZnc5CRfU6XLSXwe+hmc= +=zmpb +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message_router.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message_router.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/message_router.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +515f5964e5adfc6dd00702e0647b5988e34014dfd00b1c61ce25582c845dbf0202acd2142fe56a1801b871f6118cbf6005bd9d78cdfd9fe5564078b100a1ab78 ./x64-windows-static/include/pulsar/c/message_router.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/producer.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/producer.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-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/x64-windows-static/include/pulsar/c/producer.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/producer.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/producer.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZ8ACgkQT0AbyNP5 ++1XCQBAAqtVfSk8Bd8mGMjTdruyPOhraYoQE2EF5010768LMXaRYFcxB0iwluRo5 +6cis/yRUc3vS7g7U3jLAbcV5gpKZN2TLa2bpwT1/mvTkUoiSJGH5KQudJDap4sfS +uAEAAWk0E/Z0utdp7/M6QvdInxHt96rKam2HW/7lXvvd24xIIoscw/HgCrv2sT1x +YgOBwCMyPnfuOg9kQe+zJsvXPqQy2jiZUcvCtO4ojBGErUZG1DExNvpQGoD2xbhP +LJuIh0/UkR0rPggsLc/7iPe9GOwDmpWTLcxe+KOogJD3imIuIT82SOuREogClO0k +bYcoZlyJejLuXuslqXYMpczKVotyPbWpXGvdBypprmJTeSi+D7zwJkB3pEnKOrOl +u3pXUZE8zHc4n9u1B8Yp/u9XaHBaW+GfD61cdCH/LNqlSFcHFrMqd4VJjilmItEA +nZTsQG54i6K4C4u+gMK7d+eZlJbiW5C/g+J60H+gZiZO1HdidGOYOEhUoU+6a78t +ylFMG5e8kIy7C2VXBj40e7GYvDyQh8zZP97d/QYnaA/LaqBUR1iQK05xFBpEREaz +HIDThefh8evkSPJ4vYJpcCjpNaJBsZgpwQ6ga5V/jwchrTxrybHN2Ld9Kj9NWtw4 +wLFQGYK/W/1PPLbU/lclm9rpOC360kNzzlG66ydM5R5MT9LKMyc= +=X/c4 +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/producer.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/producer.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/producer.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +71ad5521e4f882173109c3bc0bf201649ed9c290e760600af68a3636a8cafac08dca0ba110c5e47a35abbba91807cb30ddf53cf76b5c85b47e76d26546760abc ./x64-windows-static/include/pulsar/c/producer.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/producer_configuration.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/producer_configuration.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-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/x64-windows-static/include/pulsar/c/producer_configuration.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/producer_configuration.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/producer_configuration.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZ8ACgkQT0AbyNP5 ++1UHGg/+K3Lt8uLzpteK3NkdKozp4IgmB3RM/8mrLFtipzGnUfxgYzpJq3K76LZP +vZYEmFu5wjHJOZddGN82dylMuzEWQxAULucGWI3F25Ig9U7+f/SQZv46e20JHfWs +ecEgvkPB2s82WPUSlTzC83KaR7HJXCozNT7FVK3SZFPxWh8oOuMQ+00wiAMvWnNI +RhS96PAwlwfaIKNYdfmzm1SySUSD6k1h7AZxPJ9IdZU3iD7ImXKdiDnyRUPpphQ7 +EhBjzsNNqiF+r8JApT2MEoV0gI/Aef6eYmToaHdVLiUSit4dIQSdceh9dukDF3h4 +DaJ7jFvKM6AKiiiVGnjUkhy34F1woxrI1Q66U2k0afBrGuEqnS3Q8IKZwE5rwQ74 +OkpzZ24izXKkT3OaCsf5SSqRwqpPjV0/G8AhiNsQq8BE34R3U/uKXT6MAUl/j4VM +nVuQITPOLWA4Wcl6USYF3uvGyGuxcL3x4IkzUBpW0qkLC86b1VxZ8lp4fyJpl6Au +Xf97eSKsANg+RW5tBRsSB3Znc9ISI0npoavvnGPYB2WgEjt39JlFAV1nC7P8Q+1H +a3M3hti7Bip0ZlJUx3AkmFeAUO8Awi4F4x7AFle6FpqizoHzOS6OMrCL19tdZYSO +Ss8TR/Q1gB1a9p2e1o24B7D2wGksd0jTGeJD7cyKhDNExWNtKWc= +=LknN +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/producer_configuration.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/producer_configuration.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/producer_configuration.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +712d2ca9dc38369d1e20b697eccb5244651c58d58f9e0c991d3b34e48498f92ff9b5710b5ef25310b74f19fbdddcd41e831379fa29e9e8a9a56afad5341a0d3f ./x64-windows-static/include/pulsar/c/producer_configuration.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/reader.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/reader.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-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/x64-windows-static/include/pulsar/c/reader.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/reader.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/reader.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZwACgkQT0AbyNP5 ++1WNzw/+OKD0VtzB/pNwWZHnfT4H+/CyMXl2fhh12iRoZvjDAiIUR4gvCS3NNmpa +f1hvCu/QB8cWNAjAKJzOn2ivUrVKaSLEFpRjHbbZSZZkdW+v/v+wNKBOOCrQBzXK +pEVOjjMt3x8K/DhNNymYtQPSYqW/EcSApWxTxRGQq7RPbC6hjA9X8AE1NcYHWznz +TpkmudSR/FjCiDqZOVP01HYzXtL6kJRaz6qBwfQEOjA6KKdPmmHvbvDlBv7PN5Pm +0EzkGo3AbTnwJl4Xk7F3QVpmhZf3iKojbqhAWBLrsmhSZlyDOcAgYQJlKmgR6Wk2 +51ZPFDE5nYDLlo+mxElc+RgTWj7QtKelaUWIURmKZLoggm2DUMalD6HZ+Yd4J7lG +dDU2BJ4SvO1KjPIxPuiJ9oS0LzuWNXEIXHBSZHizKgLcAwNouDoTaqW2Nq2r9XNi +3GKxhUwp+36Rkr1PaBH27lFbngybvU25z0qwQ8kgElgdMyexhBHofrCHJiKZ2Nl7 +ggQ9RbeXw4uUyxNHR3DqMUe9oFVFP9/Sd+80WNV1aFsLHEuxGzPA8namgPt1t3SM +RYpmwpjvfK+LYIDPAswYUD7GwAwPOmlREL5Ts6n0R7C4k/8sP4UnYfZcDD8inUiO +0hQ4Xwyzkfz6PcKkq4psh/MTkqS/Ub6swn6TdApnWrMhOfIdgWI= +=lqPB +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/reader.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/reader.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/reader.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +b5ae8bdba582d76881c2bef91ef6ab94ec17a27a4bc5a243a2e150b5fb823b9a197f659c2457bfa2542e663cb01d8872ece2a97762e1abfeef520ad454b9272e ./x64-windows-static/include/pulsar/c/reader.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/reader_configuration.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/reader_configuration.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-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/x64-windows-static/include/pulsar/c/reader_configuration.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/reader_configuration.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/reader_configuration.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZ8ACgkQT0AbyNP5 ++1XmZA/8DieA1/qYW+6pAdHlB6Ozi4fxQBmGXu67DFCIaGazW3aISfjwwEHgmmMD +5VTdEmXYcfX4MldJvHlplwChzMML/MWSrsv2rS5SooYs+/F5AJj9rHKtIdy7tkcs +i0zmWhuMMyphUspaHw+xO9gTobFUKuWKyOrQ+AYzJPKFSIY9oWns/q+Yl2Qq1ECy +ByFg6qHnF5L28g08DX+3jDJtwMKyJYfIfSJadUKCVrucS5VRRRp8JUMWPiInfOiK +tL0kw7M1bKadp40fHazoKAaXRWkQ/rDxYcp2/RY8znmBtzfdgneAyoU6XeWyu5do +Mec0h7ZuOkSI4gYzFz3NnvBGNgppnx9eN0J/K9z3CY18HJNJlG5KaB7BdQwPLylP +8Yg4JQdVW1MEG3zAW9fK6R+aEQMkrjIgtwvSoMOUyaHEHrZ9xcw+YdFjoQ0RAsWD +T4hrdd7t1WN33vHFABqJ2ZrFnhHAN74XPgqOxleylcYvzycdLigmbwIwqa23DgLt +D+qytwJeBV5P8YSkUdq/H+/SSPwNDZteD2R2P4CVdzEopWyLo1GX2ryJRrgek7kk +w9vstYCGkUgzjYGoqk5rpjzsl0RHhuWUxnAfLWV3RtE4fWWbRBwyub1sYLAqAM1Y +rUNNEpsEhOkQjsS7L95/dsnwTLzyWe3hu7twf2rhQQfaHOGAwQM= +=XNjU +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/reader_configuration.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/reader_configuration.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/reader_configuration.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +95c371beea7e30c2ffbfd5e9d4fc367a8d57953ec24bbeae7dc2408969a30248ee2ed6e7602601ae8f825cd5f10874c20e71cba86699a8a81c0b0b4c8aa4f464 ./x64-windows-static/include/pulsar/c/reader_configuration.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/result.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/result.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-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/x64-windows-static/include/pulsar/c/result.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/result.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/result.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZ0ACgkQT0AbyNP5 ++1VIPRAAsZCF8cHMPP4KgSdP2BxICWw9KATKCl6uQU+76ODlIwXlXTIH58sGJGvS +Ez0VWo+XhhJNdvRSsF4DYNOZAhAvjuHL3Xsw3oFgj7EHdwdOM5Uzg/ZLDvuanInM +nQCesPdsOc3yDYsYqpPT/+JGZ/d2RWH1tMKH3TjInt/8HRzo+G4y2WBLoib31dSi +JCBID4RkvDfg9JHlKlqi/SBNEegJpPcvK/i9ilaAkfKnn8JLKmQsowadCQWK5OR6 +fvafeEEkR+yZfIUc5/BrdfUQ9yKB5WXz+gXxQzyIvby9SjYG/IcHJIvvtZlb/DW/ +mDxa5Q+tW6e5F4vSYCSbRZCJlU8bmjJQV1jST6NMBzf1oFr5YPljqSqOZZeO5bHa ++HUDmoRMwfcR21CG7j4xWiFWtpUMuVyhydgRMIgRKOfZ3C1jm7jAd7wLTxc8+aKa +oTOyE14yudbBYz0hK9kfZFadxlPNmNijkSOusD1LJ4rqomd/0RiMez4IDRCV4cqQ +sJ6WwwRNkhv3YyTD+TG2tdN9wwyCPWaWaH4FbXNGgs3XxEG5fpP5WWQTlQZdzg57 +xPzTkosJ/cE2MEui2+8itKqMIGqjXWhNgSOQivFdViipKXjhE2swWijdWeZiJVFV +3mvLIwPDLKekSr4gVVXZFcZ/9NO+tI3SVM64KY56pBhY1eq/pRo= +=GoHz +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/result.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/result.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/result.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +0e536f6995cbb27d8cf78d02e1c20703ed62bde53024dce17029735b191913321d7887cc5bdcf1f6c87d6529435c4a0c158e4c0c6b41f0a75fa70d01289f045c ./x64-windows-static/include/pulsar/c/result.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/string_list.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/string_list.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-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/x64-windows-static/include/pulsar/c/string_list.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/string_list.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/string_list.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZwACgkQT0AbyNP5 ++1XdWA/+IrikOii0fatiMI6nsIDrBkJQ4U0eGr0hx+xOjqRPuirA8sUP85FCyg8W +P7kvod9VowKJlBFnUNfSKB4a0Cx0cGEcThqTHa1qglxy0ktv8Sd1JUbwVVS7fVAg +wSGMXRq9rlUULpxkK8gyZmnlfvB8NOvKhFD7AZmsXgtcps5gayJe06x9KHvBHLyZ +S6iiWwbebccXJADyCQjHFO9TaK27o/+xPg0X9rvIrrUZCLQhh+X6WRKoxdDCN2mB +mYiDvLz8eERJdx/9MqChdtsljwtRrTLKH9KGc2gP5WKgrR+pZZ0DQTC/b2guvQiI +hICy0Vzkf0P6fhgt9wxeZK0nocvzN7s7GRDLy6eMHmz5yOE+rsMbSnSq9bhMb0QO +ea8stYdq+eHuCI84u7jv/yG44LX6LGzwoRtggP/v0548eq2z+wnkkXMc81/Rs6pV +EL7P1/+2k7oU3kmbqPhINSed2qu0y9Bn+Uv07RgxscoYTb1HrMDhzWhWaam/GHRZ +PAVKWNAItp9ll6qxMvgENlG7JDWXZcePh/A1tIV+aEG7VxbQZCS2Z3xzhjf9YEmx +nG/PN/Ozq2dx7ykRdBKncRwRY4EmcC8ImTkytaVUpUqms58eYJb9HsujGspEDyxy +kQYbM7WxV5GJAkQ4WULLr5kNtblB0NI3fOHK+f7Tl0ESUgTTQuA= +=8FNy +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/string_list.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/string_list.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/string_list.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +993cabe032a39d168e483952dfdca922e9d61e3c15b3c779e57b787926585024a115510992aca36ca5c3ccbd771d505c8d704d245f822454dd78d9d470f40571 ./x64-windows-static/include/pulsar/c/string_list.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/string_map.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/string_map.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-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/x64-windows-static/include/pulsar/c/string_map.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/string_map.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/string_map.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZ4ACgkQT0AbyNP5 ++1XtnA/+OAy89s2NqactlpXcDZ07WA0TofiFiLuhTSGKurbrffzokF6oM2jjtJcr +peOzeiBwBZVmXOxGpXfhQBjplF8lWqbFwbgviHfqJj4p5H7u5TO6vc1bBxlhU7TL +Y1YCFMXW0Gvw49IeOuPREhlSsvgTUiO/2FktptJpftfQ8wOIirc5Gcvee0aafWlK +gq8IXaeiR73M2se71MzwC4ANAtit6OIzbEHaWFaFtiKbWsw7920KNxsL/1Oi6iCd +hKoaFsJsGUj/rfdwxWvFhW+CTIyOz1EL3QhKu06oHClQYSZmBIaJyGFduFsdlxQl +vD8nC+yEKvwhVtBI9bc01K0apm6sS6dcqBMdR9Z3/UD8nLy4T+KxSeGxpKN70/dn +VmXKZK441/7I7SHAypDq48oa0SqF8LS0GsfkSStABCWEgb0/FRBlOTeiVT4NZp/I +OmwWCt1zBkv5UWAo8fUlwYPhbu2GxKivnzREB9peOgnnu7fhdIpEI4ncbilEzLlX +K3mcB63zHvShg5r4dvVfaLhlNO/dbA1qHIKSlt0dtATOab7lyg+5QR+OUiVdZEFJ +6rLyAdTkNHNmlTkN3O6XxsyOTIdXre2+3RMBbe6VW7oP80QHP65bOSc2/IJvOp1V +toBhcJqyAGyjOYHTajQhzO5YZnIwiJP0bJnL7NcJq2XTWzFm2Vc= +=rDOg +-----END PGP SIGNATURE----- Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/string_map.h.sha512 ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/string_map.h.sha512 (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/string_map.h.sha512 Wed Nov 23 09:18:55 2022 @@ -0,0 +1 @@ +adca8ad1d1242f7954cbbb2abe13f1ef1a6327257e8d039f8f46092f0e83b0e63db1fd739627de1a7e79781acbbe157b33ded8936cf0ba1e9250f08aa7a02d18 ./x64-windows-static/include/pulsar/c/string_map.h Added: dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/version.h ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/version.h (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-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/x64-windows-static/include/pulsar/c/version.h.asc ============================================================================== --- dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/version.h.asc (added) +++ dev/pulsar/pulsar-client-cpp/pulsar-client-cpp-3.1.0-candidate-1/x64-windows-static/include/pulsar/c/version.h.asc Wed Nov 23 09:18:55 2022 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE6ItqSN52cCOQDJEjT0AbyNP5+1UFAmN9xZ0ACgkQT0AbyNP5 ++1VC4hAAoH8gMt1T5q8znYk+pFGfPMaRFb4V9G9BY8dC8AGIpjCNByPuIoTAT9Dk +obQPUZb+ZUPcuPtAseMh1XLT8bsHaCcXEfXxaUCOcDd9ru9en+fl/9rKzY7soxeu +uM7/MGrVGd9v9hyAp2NRQEjswV+WZJXFVekkDflEIfhkuLT4xvtcD54iu/Uh4mZv +2zCZYMb2ffccdATbPiTf7w7j+JtsQDfy+SgKfxYAL7oy0/2E6GbNIEge8mwC3CUC +moMIaJvDhAC4rnHi3XDmuNdvo7mlH5KF+iqmM0c/0+73ajqJRsP36SmjRwJcek+b +AHyPVqJ2vjX9/jZO5HqpD1gRB2LF/7VcKsrjtknQ1uxO6yvq++WuknrQ0vagrMUd +vfHmILY668EsqtM6CRy8l+frmwDHJWeHdtm9WcMfcZd5h//gKRAS8llurDZauw7h +CoRwZ6VSK/x6ynCHhpURwR2fYwkj0sGoM43QlP5CZywzlSXA55yv09jypa8i/8Pq +qRQrtWRDFhnM99DE794nraE4fYJJgyg4AU1HagvuBA+lY30Ync2yz+x0zemByGQC +HpTnNCJkNXkqWrLYLrJIIddIpAHTqq8fsw8ThCGo9ns57hmHKj33gkT/UfLH5Rgr +aQwPI5tA9GDq6ZJ+h/C6+dDei3BvANGHpbtnE1NyeZNNDs3AIWw= +=vjxL +-----END PGP SIGNATURE-----
