You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2018/05/17 01:35:25 UTC
[incubator-pulsar] branch master updated: Create shared library
that only exports API symbols (#1794)
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 <mm...@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
mmerli@apache.org.