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-----


Reply via email to