This is an automated email from the ASF dual-hosted git repository. mmerli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git
The following commit(s) were added to refs/heads/master by this push: new 971f76b Create shared library that only exports API symbols (#1794) 971f76b is described below commit 971f76bb52aab9a3de162ec050248034e7858492 Author: Matteo Merli <mme...@apache.org> AuthorDate: Wed May 16 18:35:22 2018 -0700 Create shared library that only exports API symbols (#1794) --- pulsar-client-cpp/CMakeLists.txt | 5 +++++ pulsar-client-cpp/include/pulsar/DeprecatedException.h | 4 ++++ pulsar-client-cpp/include/pulsar/TopicMetadata.h | 4 ++++ pulsar-client-cpp/include/pulsar/c/authentication.h | 4 ++++ pulsar-client-cpp/include/pulsar/c/client.h | 4 ++++ pulsar-client-cpp/include/pulsar/c/client_configuration.h | 4 ++++ pulsar-client-cpp/include/pulsar/c/consumer.h | 4 ++++ pulsar-client-cpp/include/pulsar/c/consumer_configuration.h | 4 ++++ pulsar-client-cpp/include/pulsar/c/message.h | 4 ++++ pulsar-client-cpp/include/pulsar/c/message_id.h | 4 ++++ pulsar-client-cpp/include/pulsar/c/message_router.h | 4 ++++ pulsar-client-cpp/include/pulsar/c/producer.h | 4 ++++ pulsar-client-cpp/include/pulsar/c/producer_configuration.h | 4 ++++ pulsar-client-cpp/include/pulsar/c/reader.h | 4 ++++ pulsar-client-cpp/include/pulsar/c/reader_configuration.h | 4 ++++ pulsar-client-cpp/include/pulsar/c/result.h | 4 ++++ 16 files changed, 65 insertions(+) diff --git a/pulsar-client-cpp/CMakeLists.txt b/pulsar-client-cpp/CMakeLists.txt index 5ada575..e5fd716 100644 --- a/pulsar-client-cpp/CMakeLists.txt +++ b/pulsar-client-cpp/CMakeLists.txt @@ -41,6 +41,11 @@ endif(NOT CXX_STANDARD) set(CMAKE_CXX_FLAGS " -msse4.2 -mpclmul -Wno-deprecated-declarations ${CXX_STANDARD} ${CMAKE_CXX_FLAGS}") +if (!APPLE) + # Hide all non-exported symbols to avoid conflicts + set(CMAKE_CXX_FLAGS " -fvisibility=hidden -Wl,--exclude-libs,ALL ${CMAKE_CXX_FLAGS}") +endif () + set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(PROTOBUF_LIBRARIES $ENV{PROTOBUF_LIBRARIES}) diff --git a/pulsar-client-cpp/include/pulsar/DeprecatedException.h b/pulsar-client-cpp/include/pulsar/DeprecatedException.h index 91e9c67..052f985 100644 --- a/pulsar-client-cpp/include/pulsar/DeprecatedException.h +++ b/pulsar-client-cpp/include/pulsar/DeprecatedException.h @@ -22,6 +22,8 @@ #include <stdexcept> #include <string> +#pragma GCC visibility push(default) + namespace pulsar { class DeprecatedException : public std::runtime_error { public: @@ -32,4 +34,6 @@ class DeprecatedException : public std::runtime_error { }; } // namespace pulsar +#pragma GCC visibility pop + #endif // DEPRECATED_EXCEPTION_HPP_ diff --git a/pulsar-client-cpp/include/pulsar/TopicMetadata.h b/pulsar-client-cpp/include/pulsar/TopicMetadata.h index fbfd92c..6413e2b 100644 --- a/pulsar-client-cpp/include/pulsar/TopicMetadata.h +++ b/pulsar-client-cpp/include/pulsar/TopicMetadata.h @@ -19,6 +19,8 @@ #ifndef TOPIC_METADATA_HPP_ #define TOPIC_METADATA_HPP_ +#pragma GCC visibility push(default) + namespace pulsar { /** * Metadata of a topic that can be used for message routing. @@ -29,4 +31,6 @@ class TopicMetadata { }; } // namespace pulsar +#pragma GCC visibility pop + #endif /* TOPIC_METADATA_HPP_ */ diff --git a/pulsar-client-cpp/include/pulsar/c/authentication.h b/pulsar-client-cpp/include/pulsar/c/authentication.h index 6f405c2..bd29d5f 100644 --- a/pulsar-client-cpp/include/pulsar/c/authentication.h +++ b/pulsar-client-cpp/include/pulsar/c/authentication.h @@ -23,6 +23,8 @@ extern "C" { #endif +#pragma GCC visibility push(default) + typedef struct _pulsar_authentication pulsar_authentication_t; pulsar_authentication_t *pulsar_authentication_create(const char *dynamicLibPath, @@ -30,6 +32,8 @@ pulsar_authentication_t *pulsar_authentication_create(const char *dynamicLibPath void pulsar_authentication_free(pulsar_authentication_t *authentication); +#pragma GCC visibility pop + #ifdef __cplusplus } #endif \ No newline at end of file diff --git a/pulsar-client-cpp/include/pulsar/c/client.h b/pulsar-client-cpp/include/pulsar/c/client.h index b8ef1ed..2da7c6d 100644 --- a/pulsar-client-cpp/include/pulsar/c/client.h +++ b/pulsar-client-cpp/include/pulsar/c/client.h @@ -34,6 +34,8 @@ extern "C" { #endif +#pragma GCC visibility push(default) + typedef struct _pulsar_client pulsar_client_t; typedef struct _pulsar_producer pulsar_producer_t; @@ -128,6 +130,8 @@ void pulsar_client_close_async(pulsar_client_t *client, pulsar_close_callback ca void pulsar_client_free(pulsar_client_t *client); +#pragma GCC visibility pop + #ifdef __cplusplus } #endif \ No newline at end of file diff --git a/pulsar-client-cpp/include/pulsar/c/client_configuration.h b/pulsar-client-cpp/include/pulsar/c/client_configuration.h index 47f78db..7725e7c 100644 --- a/pulsar-client-cpp/include/pulsar/c/client_configuration.h +++ b/pulsar-client-cpp/include/pulsar/c/client_configuration.h @@ -23,6 +23,8 @@ extern "C" { #endif +#pragma GCC visibility push(default) + typedef struct _pulsar_client_configuration pulsar_client_configuration_t; typedef struct _pulsar_authentication pulsar_authentication_t; @@ -139,6 +141,8 @@ void pulsar_client_configuration_set_stats_interval_in_seconds(pulsar_client_con const unsigned int pulsar_client_configuration_get_stats_interval_in_seconds( pulsar_client_configuration_t *conf); +#pragma GCC visibility pop + #ifdef __cplusplus } #endif diff --git a/pulsar-client-cpp/include/pulsar/c/consumer.h b/pulsar-client-cpp/include/pulsar/c/consumer.h index 2917eea..e3e683b 100644 --- a/pulsar-client-cpp/include/pulsar/c/consumer.h +++ b/pulsar-client-cpp/include/pulsar/c/consumer.h @@ -27,6 +27,8 @@ extern "C" { #include <stdint.h> +#pragma GCC visibility push(default) + typedef struct _pulsar_consumer pulsar_consumer_t; typedef void (*pulsar_result_callback)(pulsar_result, void *); @@ -190,6 +192,8 @@ pulsar_result resume_message_listener(pulsar_consumer_t *consumer); */ void pulsar_consumer_redeliver_unacknowledged_messages(pulsar_consumer_t *consumer); +#pragma GCC visibility pop + #ifdef __cplusplus } #endif diff --git a/pulsar-client-cpp/include/pulsar/c/consumer_configuration.h b/pulsar-client-cpp/include/pulsar/c/consumer_configuration.h index 445e34e..fcefc97 100644 --- a/pulsar-client-cpp/include/pulsar/c/consumer_configuration.h +++ b/pulsar-client-cpp/include/pulsar/c/consumer_configuration.h @@ -22,6 +22,8 @@ extern "C" { #endif +#pragma GCC visibility push(default) + typedef struct _pulsar_consumer_configuration pulsar_consumer_configuration_t; typedef enum { @@ -159,6 +161,8 @@ int pulsar_consumer_is_encryption_enabled(pulsar_consumer_configuration_t *consu // setCryptoFailureAction(ConsumerCryptoFailureAction // action); +#pragma GCC visibility pop + #ifdef __cplusplus } #endif diff --git a/pulsar-client-cpp/include/pulsar/c/message.h b/pulsar-client-cpp/include/pulsar/c/message.h index 9645b02..7c2fb9d 100644 --- a/pulsar-client-cpp/include/pulsar/c/message.h +++ b/pulsar-client-cpp/include/pulsar/c/message.h @@ -26,6 +26,8 @@ extern "C" { #include <stddef.h> #include <stdint.h> +#pragma GCC visibility push(default) + typedef struct _pulsar_message pulsar_message_t; typedef struct _pulsar_message_id pulsar_message_id_t; @@ -163,6 +165,8 @@ uint64_t pulsar_message_get_publish_timestamp(pulsar_message_t *message); */ uint64_t pulsar_message_get_event_timestamp(pulsar_message_t *message); +#pragma GCC visibility pop + #ifdef __cplusplus } #endif \ No newline at end of file diff --git a/pulsar-client-cpp/include/pulsar/c/message_id.h b/pulsar-client-cpp/include/pulsar/c/message_id.h index 44d0c8f..b31c15e 100644 --- a/pulsar-client-cpp/include/pulsar/c/message_id.h +++ b/pulsar-client-cpp/include/pulsar/c/message_id.h @@ -26,6 +26,8 @@ extern "C" { #include <stddef.h> #include <stdint.h> +#pragma GCC visibility push(default) + typedef struct _pulsar_message_id pulsar_message_id_t; /** @@ -52,6 +54,8 @@ char *pulsar_message_id_str(pulsar_message_id_t *messageId); void pulsar_message_id_free(pulsar_message_id_t *messageId); +#pragma GCC visibility pop + #ifdef __cplusplus } #endif \ No newline at end of file diff --git a/pulsar-client-cpp/include/pulsar/c/message_router.h b/pulsar-client-cpp/include/pulsar/c/message_router.h index 07ff7a3..a41ff5f 100644 --- a/pulsar-client-cpp/include/pulsar/c/message_router.h +++ b/pulsar-client-cpp/include/pulsar/c/message_router.h @@ -25,6 +25,8 @@ extern "C" { #endif +#pragma GCC visibility push(default) + typedef struct _pulsar_topic_metadata pulsar_topic_metadata_t; typedef int (*pulsar_message_router)(pulsar_message_t *msg, pulsar_topic_metadata_t *topicMetadata, @@ -32,6 +34,8 @@ typedef int (*pulsar_message_router)(pulsar_message_t *msg, pulsar_topic_metadat int pulsar_topic_metadata_get_num_partitions(pulsar_topic_metadata_t *topicMetadata); +#pragma GCC visibility pop + #ifdef __cplusplus } #endif \ No newline at end of file diff --git a/pulsar-client-cpp/include/pulsar/c/producer.h b/pulsar-client-cpp/include/pulsar/c/producer.h index 6b506b8..752448a 100644 --- a/pulsar-client-cpp/include/pulsar/c/producer.h +++ b/pulsar-client-cpp/include/pulsar/c/producer.h @@ -28,6 +28,8 @@ extern "C" { #include <stdint.h> +#pragma GCC visibility push(default) + typedef struct _pulsar_producer pulsar_producer_t; typedef void (*pulsar_send_callback)(pulsar_result, pulsar_message_t *msg, void *ctx); @@ -114,6 +116,8 @@ void pulsar_producer_close_async(pulsar_producer_t *producer, pulsar_close_callb void pulsar_producer_free(pulsar_producer_t *producer); +#pragma GCC visibility pop + #ifdef __cplusplus } #endif \ No newline at end of file diff --git a/pulsar-client-cpp/include/pulsar/c/producer_configuration.h b/pulsar-client-cpp/include/pulsar/c/producer_configuration.h index 636fe68..ae88198 100644 --- a/pulsar-client-cpp/include/pulsar/c/producer_configuration.h +++ b/pulsar-client-cpp/include/pulsar/c/producer_configuration.h @@ -27,6 +27,8 @@ extern "C" { #endif +#pragma GCC visibility push(default) + typedef enum { pulsar_UseSinglePartition, pulsar_RoundRobinDistribution, @@ -142,6 +144,8 @@ unsigned long pulsar_producer_configuration_get_batching_max_publish_delay_ms( // int isEncryptionEnabled() const; // ProducerConfiguration &addEncryptionKey(std::string key); +#pragma GCC visibility pop + #ifdef __cplusplus } #endif \ No newline at end of file diff --git a/pulsar-client-cpp/include/pulsar/c/reader.h b/pulsar-client-cpp/include/pulsar/c/reader.h index 547bbf2..72c02a6 100644 --- a/pulsar-client-cpp/include/pulsar/c/reader.h +++ b/pulsar-client-cpp/include/pulsar/c/reader.h @@ -25,6 +25,8 @@ extern "C" { #endif +#pragma GCC visibility push(default) + typedef struct _pulsar_reader pulsar_reader_t; typedef void (*pulsar_result_callback)(pulsar_result, void *); @@ -64,6 +66,8 @@ void pulsar_reader_close_async(pulsar_reader_t *reader, pulsar_result_callback c void pulsar_reader_free(pulsar_reader_t *reader); +#pragma GCC visibility pop + #ifdef __cplusplus } #endif diff --git a/pulsar-client-cpp/include/pulsar/c/reader_configuration.h b/pulsar-client-cpp/include/pulsar/c/reader_configuration.h index c7aaf14..faac37c 100644 --- a/pulsar-client-cpp/include/pulsar/c/reader_configuration.h +++ b/pulsar-client-cpp/include/pulsar/c/reader_configuration.h @@ -23,6 +23,8 @@ extern "C" { #endif +#pragma GCC visibility push(default) + typedef struct _pulsar_reader_configuration pulsar_reader_configuration_t; typedef void (*pulsar_reader_listener)(pulsar_reader_t *reader, pulsar_message_t *msg, void *ctx); @@ -77,6 +79,8 @@ void pulsar_reader_configuration_set_subscription_role_prefix(pulsar_reader_conf const char *pulsar_reader_configuration_get_subscription_role_prefix( pulsar_reader_configuration_t *configuration); +#pragma GCC visibility pop + #ifdef __cplusplus } #endif diff --git a/pulsar-client-cpp/include/pulsar/c/result.h b/pulsar-client-cpp/include/pulsar/c/result.h index 0ca769d..6733f28 100644 --- a/pulsar-client-cpp/include/pulsar/c/result.h +++ b/pulsar-client-cpp/include/pulsar/c/result.h @@ -23,6 +23,8 @@ extern "C" { #endif +#pragma GCC visibility push(default) + typedef enum { pulsar_result_Ok, /// Operation successful @@ -76,6 +78,8 @@ typedef enum { // Return string representation of result code const char *pulsar_result_str(pulsar_result result); +#pragma GCC visibility pop + #ifdef __cplusplus } #endif -- To stop receiving notification emails like this one, please contact mme...@apache.org.