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.

Reply via email to