summaryrefslogtreecommitdiff
path: root/qpid/cpp/include/qpid
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/include/qpid')
-rwxr-xr-xqpid/cpp/include/qpid/Address.h6
-rw-r--r--qpid/cpp/include/qpid/Exception.h2
-rw-r--r--qpid/cpp/include/qpid/ImportExport.h15
-rw-r--r--qpid/cpp/include/qpid/Options.h6
-rw-r--r--qpid/cpp/include/qpid/RangeSet.h4
-rw-r--r--qpid/cpp/include/qpid/SessionId.h2
-rw-r--r--qpid/cpp/include/qpid/Url.h4
-rw-r--r--qpid/cpp/include/qpid/agent/ManagementAgent.h4
-rw-r--r--qpid/cpp/include/qpid/client/Handle.h2
-rw-r--r--qpid/cpp/include/qpid/console/Broker.h2
-rw-r--r--qpid/cpp/include/qpid/console/Event.h2
-rw-r--r--qpid/cpp/include/qpid/console/Object.h4
-rw-r--r--qpid/cpp/include/qpid/console/SequenceManager.h2
-rw-r--r--qpid/cpp/include/qpid/console/SessionManager.h4
-rw-r--r--qpid/cpp/include/qpid/framing/FieldTable.h5
-rw-r--r--qpid/cpp/include/qpid/framing/FieldValue.h54
-rw-r--r--qpid/cpp/include/qpid/framing/Uuid.h2
-rw-r--r--qpid/cpp/include/qpid/log/Options.h2
-rw-r--r--qpid/cpp/include/qpid/log/Selector.h2
-rw-r--r--qpid/cpp/include/qpid/log/SinkOptions.h2
-rw-r--r--qpid/cpp/include/qpid/log/Statement.h2
-rw-r--r--qpid/cpp/include/qpid/management/Buffer.h2
-rw-r--r--qpid/cpp/include/qpid/management/ManagementObject.h6
-rw-r--r--qpid/cpp/include/qpid/management/Mutex.h2
-rw-r--r--qpid/cpp/include/qpid/sys/IOHandle.h4
-rw-r--r--qpid/cpp/include/qpid/sys/Thread.h2
-rw-r--r--qpid/cpp/include/qpid/sys/Time.h2
-rw-r--r--qpid/cpp/include/qpid/sys/posix/Mutex.h9
-rw-r--r--qpid/cpp/include/qpid/sys/posix/PrivatePosix.h12
29 files changed, 88 insertions, 79 deletions
diff --git a/qpid/cpp/include/qpid/Address.h b/qpid/cpp/include/qpid/Address.h
index f5b19d0532..a60942e4f0 100755
--- a/qpid/cpp/include/qpid/Address.h
+++ b/qpid/cpp/include/qpid/Address.h
@@ -29,13 +29,13 @@ namespace client { struct ConnectionSettings; }
/**
- * Contains the protocol address of an AMQP broker.
+ * Contains the protocol address of an AMQP broker.
*/
-struct Address {
+struct QPID_COMMON_CLASS_EXTERN Address {
public:
static const std::string TCP; // Default TCP protocol tag.
static const uint16_t AMQP_PORT=5672; // Default AMQP port.
-
+
QPID_COMMON_INLINE_EXTERN explicit Address(
const std::string& protocol_=std::string(),
const std::string& host_=std::string(),
diff --git a/qpid/cpp/include/qpid/Exception.h b/qpid/cpp/include/qpid/Exception.h
index cbd175214d..9617076eab 100644
--- a/qpid/cpp/include/qpid/Exception.h
+++ b/qpid/cpp/include/qpid/Exception.h
@@ -82,7 +82,7 @@ struct QPID_COMMON_CLASS_EXTERN ClosedException : public Exception {
/**
* Exception representing transport failure
*/
-struct TransportFailure : public Exception {
+struct QPID_COMMON_CLASS_EXTERN TransportFailure : public Exception {
TransportFailure(const std::string& msg=std::string()) : Exception(msg) {}
};
diff --git a/qpid/cpp/include/qpid/ImportExport.h b/qpid/cpp/include/qpid/ImportExport.h
index e62399faf7..a169c7da49 100644
--- a/qpid/cpp/include/qpid/ImportExport.h
+++ b/qpid/cpp/include/qpid/ImportExport.h
@@ -56,10 +56,21 @@
# define QPID_INLINE_EXPORT
# define QPID_INLINE_IMPORT
# endif
-#else
+#elif __GNUC__ >= 4
//
- // Non-Windows (Linux, etc.) definitions:
+ // GCC visibility attribute
//
+# define QPID_IMPORT __attribute__ ((visibility("default")))
+# define QPID_EXPORT __attribute__ ((visibility("default")))
+# define QPID_CLASS_EXPORT QPID_EXPORT
+# define QPID_CLASS_IMPORT QPID_IMPORT
+# define QPID_INLINE_EXPORT QPID_EXPORT
+# define QPID_INLINE_IMPORT QPID_IMPORT
+
+#else
+ //
+ // No import/export definitions
+ //
# define QPID_EXPORT
# define QPID_IMPORT
# define QPID_CLASS_EXPORT
diff --git a/qpid/cpp/include/qpid/Options.h b/qpid/cpp/include/qpid/Options.h
index 63d91c2d72..8f4cc1b1b2 100644
--- a/qpid/cpp/include/qpid/Options.h
+++ b/qpid/cpp/include/qpid/Options.h
@@ -53,7 +53,7 @@ QPID_COMMON_EXTERN std::string prettyArg(const std::string&, const std::string&)
/** @internal Normally only constructed by optValue() */
template <class T>
-class OptionValue : public po::typed_value<T> {
+class QPID_COMMON_CLASS_EXTERN OptionValue : public po::typed_value<T> {
public:
OptionValue(T& value, const std::string& arg)
: po::typed_value<T>(&value), argName(arg) {}
@@ -135,7 +135,7 @@ inline po::value_semantic* optValue(bool& value) { return po::bool_switch(&value
struct Options : public po::options_description {
- struct Exception : public qpid::Exception {
+ struct QPID_COMMON_CLASS_EXTERN Exception : public qpid::Exception {
Exception(const std::string& msg) : qpid::Exception(msg) {}
};
@@ -161,7 +161,7 @@ struct Options : public po::options_description {
/**
* Standard options for configuration
*/
-struct CommonOptions : public Options {
+struct QPID_COMMON_CLASS_EXTERN CommonOptions : public Options {
QPID_COMMON_EXTERN CommonOptions(const std::string& name=std::string(),
const std::string& configfile=std::string());
bool help;
diff --git a/qpid/cpp/include/qpid/RangeSet.h b/qpid/cpp/include/qpid/RangeSet.h
index 36991fd784..32b623780e 100644
--- a/qpid/cpp/include/qpid/RangeSet.h
+++ b/qpid/cpp/include/qpid/RangeSet.h
@@ -190,8 +190,6 @@ class RangeSet
static size_t accumulateSize(size_t s, const Range<T>& r) { return s+r.size(); }
Ranges ranges;
- template <class U> friend std::ostream& operator<<(std::ostream& o, const RangeSet<U>& r);
-
friend class iterator;
};
@@ -204,7 +202,7 @@ template <class T>
std::ostream& operator<<(std::ostream& o, const RangeSet<T>& rs) {
std::ostream_iterator<Range<T> > i(o, " ");
o << "{ ";
- std::copy(rs.ranges.begin(), rs.ranges.end(), i);
+ std::copy(rs.rangesBegin(), rs.rangesEnd(), i);
return o << "}";
}
diff --git a/qpid/cpp/include/qpid/SessionId.h b/qpid/cpp/include/qpid/SessionId.h
index e18b360999..4720949175 100644
--- a/qpid/cpp/include/qpid/SessionId.h
+++ b/qpid/cpp/include/qpid/SessionId.h
@@ -39,7 +39,7 @@ namespace qpid {
* The name must be unique among sessions with the same authentication
* principal.
*/
-class SessionId : boost::totally_ordered1<SessionId> {
+class QPID_COMMON_CLASS_EXTERN SessionId : boost::totally_ordered1<SessionId> {
std::string userId;
std::string name;
public:
diff --git a/qpid/cpp/include/qpid/Url.h b/qpid/cpp/include/qpid/Url.h
index 915b08ac5f..8845fc4a60 100644
--- a/qpid/cpp/include/qpid/Url.h
+++ b/qpid/cpp/include/qpid/Url.h
@@ -30,7 +30,7 @@
namespace qpid {
/** An AMQP URL contains a list of addresses */
-struct Url : public std::vector<Address> {
+struct QPID_COMMON_CLASS_EXTERN Url : public std::vector<Address> {
/** Url with the hostname as returned by gethostname(2) */
QPID_COMMON_EXTERN static Url getHostNameUrl(uint16_t port);
@@ -39,7 +39,7 @@ struct Url : public std::vector<Address> {
* on a multi-homed host. */
QPID_COMMON_EXTERN static Url getIpAddressesUrl(uint16_t port);
- struct Invalid : public Exception { Invalid(const std::string& s); };
+ struct QPID_COMMON_CLASS_EXTERN Invalid : public Exception { Invalid(const std::string& s); };
/** Convert to string form. */
QPID_COMMON_EXTERN std::string str() const;
diff --git a/qpid/cpp/include/qpid/agent/ManagementAgent.h b/qpid/cpp/include/qpid/agent/ManagementAgent.h
index e2451244c1..a818af9ca5 100644
--- a/qpid/cpp/include/qpid/agent/ManagementAgent.h
+++ b/qpid/cpp/include/qpid/agent/ManagementAgent.h
@@ -35,11 +35,11 @@ public:
virtual void notify() = 0;
};
-class ManagementAgent
+class QMF_AGENT_CLASS_EXTERN ManagementAgent
{
public:
- class Singleton {
+ class QMF_AGENT_CLASS_EXTERN Singleton {
public:
QMF_AGENT_EXTERN Singleton(bool disableManagement = false);
QMF_AGENT_EXTERN ~Singleton();
diff --git a/qpid/cpp/include/qpid/client/Handle.h b/qpid/cpp/include/qpid/client/Handle.h
index b8315481a9..622cdfa191 100644
--- a/qpid/cpp/include/qpid/client/Handle.h
+++ b/qpid/cpp/include/qpid/client/Handle.h
@@ -36,7 +36,7 @@ template <class> class PrivateImplRef;
* Handles can be null, like a 0 pointer. Use isValid(), isNull() or the
* conversion to bool to test for a null handle.
*/
-template <class T> class Handle {
+template <class T> class QPID_CLIENT_CLASS_EXTERN Handle {
public:
/**@return true if handle is valid, i.e. not null. */
diff --git a/qpid/cpp/include/qpid/console/Broker.h b/qpid/cpp/include/qpid/console/Broker.h
index c2ba8ac81f..4e03d9482e 100644
--- a/qpid/cpp/include/qpid/console/Broker.h
+++ b/qpid/cpp/include/qpid/console/Broker.h
@@ -49,7 +49,7 @@ namespace console {
*
* \ingroup qpidconsoleapi
*/
- class Broker : public client::MessageListener {
+ class QPID_CONSOLE_CLASS_EXTERN Broker : public client::MessageListener {
public:
QPID_CONSOLE_EXTERN Broker(SessionManager& sm,
client::ConnectionSettings& settings);
diff --git a/qpid/cpp/include/qpid/console/Event.h b/qpid/cpp/include/qpid/console/Event.h
index ef4ecc791c..2e3fd4a289 100644
--- a/qpid/cpp/include/qpid/console/Event.h
+++ b/qpid/cpp/include/qpid/console/Event.h
@@ -40,7 +40,7 @@ namespace console {
*
* \ingroup qmfconsoleapi
*/
- class Event {
+ class QPID_CONSOLE_CLASS_EXTERN Event {
public:
typedef enum {
SEV_EMERGENCY = 0, SEV_ALERT = 1, SEV_CRITICAL = 2, SEV_ERROR = 3,
diff --git a/qpid/cpp/include/qpid/console/Object.h b/qpid/cpp/include/qpid/console/Object.h
index 5a29fdf792..7194d33ce5 100644
--- a/qpid/cpp/include/qpid/console/Object.h
+++ b/qpid/cpp/include/qpid/console/Object.h
@@ -52,10 +52,10 @@ namespace console {
std::map<std::string, boost::shared_ptr<Value> > arguments;
};
- class Object {
+ class QPID_CONSOLE_CLASS_EXTERN Object {
public:
typedef std::vector<Object> Vector;
- struct AttributeMap : public std::map<std::string, boost::shared_ptr<Value> > {
+ struct QPID_CONSOLE_CLASS_EXTERN AttributeMap : public std::map<std::string, boost::shared_ptr<Value> > {
QPID_CONSOLE_EXTERN void addRef(const std::string& key, const ObjectId& val);
QPID_CONSOLE_EXTERN void addUint(const std::string& key, uint32_t val);
QPID_CONSOLE_EXTERN void addInt(const std::string& key, int32_t val);
diff --git a/qpid/cpp/include/qpid/console/SequenceManager.h b/qpid/cpp/include/qpid/console/SequenceManager.h
index ea0ccf3f77..a06abaeb59 100644
--- a/qpid/cpp/include/qpid/console/SequenceManager.h
+++ b/qpid/cpp/include/qpid/console/SequenceManager.h
@@ -34,7 +34,7 @@ namespace console {
*
* \ingroup qpidconsoleapi
*/
- class SequenceManager {
+ class QPID_CONSOLE_CLASS_EXTERN SequenceManager {
public:
typedef std::set<uint32_t> set;
diff --git a/qpid/cpp/include/qpid/console/SessionManager.h b/qpid/cpp/include/qpid/console/SessionManager.h
index b46af549ff..8b61634b94 100644
--- a/qpid/cpp/include/qpid/console/SessionManager.h
+++ b/qpid/cpp/include/qpid/console/SessionManager.h
@@ -47,14 +47,14 @@ class ConsoleListener;
*
* \ingroup qmfconsoleapi
*/
-class SessionManager
+class QPID_CONSOLE_CLASS_EXTERN SessionManager
{
public:
typedef std::vector<std::string> NameVector;
typedef std::vector<ClassKey> KeyVector;
QPID_CONSOLE_EXTERN ~SessionManager();
- struct Settings {
+ struct QPID_CONSOLE_CLASS_EXTERN Settings {
bool rcvObjects;
bool rcvEvents;
bool rcvHeartbeats;
diff --git a/qpid/cpp/include/qpid/framing/FieldTable.h b/qpid/cpp/include/qpid/framing/FieldTable.h
index fed431129a..7a783849af 100644
--- a/qpid/cpp/include/qpid/framing/FieldTable.h
+++ b/qpid/cpp/include/qpid/framing/FieldTable.h
@@ -45,7 +45,7 @@ class Buffer;
*
* \ingroup clientapi
*/
-class FieldTable
+class QPID_COMMON_CLASS_EXTERN FieldTable
{
public:
typedef boost::shared_ptr<FieldValue> ValuePtr;
@@ -119,9 +119,6 @@ class FieldTable
QPID_COMMON_EXTERN friend std::ostream& operator<<(std::ostream& out, const FieldTable& body);
};
-//class FieldNotFoundException{};
-//class UnknownFieldName : public FieldNotFoundException{};
-//class IncorrectFieldType : public FieldNotFoundException{};
}
}
diff --git a/qpid/cpp/include/qpid/framing/FieldValue.h b/qpid/cpp/include/qpid/framing/FieldValue.h
index 458de62fdf..abf98caead 100644
--- a/qpid/cpp/include/qpid/framing/FieldValue.h
+++ b/qpid/cpp/include/qpid/framing/FieldValue.h
@@ -138,7 +138,7 @@ inline std::ostream& operator<<(std::ostream& out, const FieldValue& v) {
}
template <int width>
-class FixedWidthValue : public FieldValue::Data {
+class QPID_COMMON_CLASS_EXTERN FixedWidthValue : public FieldValue::Data {
uint8_t octets[width];
public:
@@ -244,7 +244,7 @@ inline double FieldValue::get<double>() const {
}
template <>
-class FixedWidthValue<0> : public FieldValue::Data {
+class QPID_COMMON_CLASS_EXTERN FixedWidthValue<0> : public FieldValue::Data {
public:
// Implicit default constructor is fine
uint32_t encodedSize() const { return 0; }
@@ -258,7 +258,7 @@ class FixedWidthValue<0> : public FieldValue::Data {
};
template <int lenwidth>
-class VariableWidthValue : public FieldValue::Data {
+class QPID_COMMON_CLASS_EXTERN VariableWidthValue : public FieldValue::Data {
std::vector<uint8_t> octets;
public:
@@ -290,7 +290,7 @@ class VariableWidthValue : public FieldValue::Data {
};
template <class T>
-class EncodedValue : public FieldValue::Data {
+class QPID_COMMON_CLASS_EXTERN EncodedValue : public FieldValue::Data {
T value;
public:
@@ -324,7 +324,7 @@ class EncodedValue : public FieldValue::Data {
template <class T>
inline bool FieldValue::get(T& t) const
{
- const EncodedValue<T>* v = dynamic_cast< EncodedValue<T>* >(data.get());
+ const EncodedValue<T>* v = dynamic_cast< EncodedValue<T>* >(data.get());
if (v != 0) {
t = v->getValue();
return true;
@@ -338,37 +338,37 @@ inline bool FieldValue::get(T& t) const
}
}
-class Str8Value : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN Str8Value : public FieldValue {
public:
QPID_COMMON_EXTERN Str8Value(const std::string& v);
};
-class Str16Value : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN Str16Value : public FieldValue {
public:
QPID_COMMON_EXTERN Str16Value(const std::string& v);
};
-class Var16Value : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN Var16Value : public FieldValue {
public:
QPID_COMMON_EXTERN Var16Value(const std::string& v, uint8_t code);
};
-class Var32Value : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN Var32Value : public FieldValue {
public:
QPID_COMMON_EXTERN Var32Value(const std::string& v, uint8_t code);
};
-class Struct32Value : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN Struct32Value : public FieldValue {
public:
QPID_COMMON_EXTERN Struct32Value(const std::string& v);
};
-class FloatValue : public FieldValue
+class QPID_COMMON_CLASS_EXTERN FloatValue : public FieldValue
{
public:
QPID_COMMON_EXTERN FloatValue(float f);
};
-class DoubleValue : public FieldValue
+class QPID_COMMON_CLASS_EXTERN DoubleValue : public FieldValue
{
public:
QPID_COMMON_EXTERN DoubleValue(double f);
@@ -377,81 +377,81 @@ class DoubleValue : public FieldValue
/*
* Basic integer value encodes as signed 32 bit
*/
-class IntegerValue : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN IntegerValue : public FieldValue {
public:
QPID_COMMON_EXTERN IntegerValue(int v);
};
-class TimeValue : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN TimeValue : public FieldValue {
public:
QPID_COMMON_EXTERN TimeValue(uint64_t v);
};
-class Integer64Value : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN Integer64Value : public FieldValue {
public:
QPID_COMMON_EXTERN Integer64Value(int64_t v);
};
-class Unsigned64Value : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN Unsigned64Value : public FieldValue {
public:
QPID_COMMON_EXTERN Unsigned64Value(uint64_t v);
};
-class FieldTableValue : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN FieldTableValue : public FieldValue {
public:
typedef FieldTable ValueType;
QPID_COMMON_EXTERN FieldTableValue(const FieldTable&);
};
-class ArrayValue : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN ArrayValue : public FieldValue {
public:
QPID_COMMON_EXTERN ArrayValue(const Array&);
};
-class VoidValue : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN VoidValue : public FieldValue {
public:
QPID_COMMON_EXTERN VoidValue();
};
-class BoolValue : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN BoolValue : public FieldValue {
public:
QPID_COMMON_EXTERN BoolValue(bool);
};
-class Unsigned8Value : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN Unsigned8Value : public FieldValue {
public:
QPID_COMMON_EXTERN Unsigned8Value(uint8_t);
};
-class Unsigned16Value : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN Unsigned16Value : public FieldValue {
public:
QPID_COMMON_EXTERN Unsigned16Value(uint16_t);
};
-class Unsigned32Value : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN Unsigned32Value : public FieldValue {
public:
QPID_COMMON_EXTERN Unsigned32Value(uint32_t);
};
-class Integer8Value : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN Integer8Value : public FieldValue {
public:
QPID_COMMON_EXTERN Integer8Value(int8_t);
};
-class Integer16Value : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN Integer16Value : public FieldValue {
public:
QPID_COMMON_EXTERN Integer16Value(int16_t);
};
typedef IntegerValue Integer32Value;
-class ListValue : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN ListValue : public FieldValue {
public:
typedef List ValueType;
QPID_COMMON_EXTERN ListValue(const List&);
};
-class UuidValue : public FieldValue {
+class QPID_COMMON_CLASS_EXTERN UuidValue : public FieldValue {
public:
QPID_COMMON_EXTERN UuidValue(const unsigned char*);
};
diff --git a/qpid/cpp/include/qpid/framing/Uuid.h b/qpid/cpp/include/qpid/framing/Uuid.h
index ccfd7e9534..d50f46e472 100644
--- a/qpid/cpp/include/qpid/framing/Uuid.h
+++ b/qpid/cpp/include/qpid/framing/Uuid.h
@@ -41,7 +41,7 @@ class Buffer;
* TODO: change this implementation as it leaks boost into the
* client API
*/
-struct Uuid : public boost::array<uint8_t, 16> {
+struct QPID_COMMON_CLASS_EXTERN Uuid : public boost::array<uint8_t, 16> {
/** If unique is true, generate a unique ID else a null ID. */
QPID_COMMON_EXTERN Uuid(bool unique=false);
diff --git a/qpid/cpp/include/qpid/log/Options.h b/qpid/cpp/include/qpid/log/Options.h
index 17cbfde9bc..ef5b746ad4 100644
--- a/qpid/cpp/include/qpid/log/Options.h
+++ b/qpid/cpp/include/qpid/log/Options.h
@@ -28,7 +28,7 @@ namespace qpid {
namespace log {
/** Logging options for config parser. */
-struct Options : public qpid::Options {
+struct QPID_COMMON_CLASS_EXTERN Options : public qpid::Options {
/** Pass argv[0] for use in syslog output */
QPID_COMMON_EXTERN Options(const std::string& argv0_=std::string(),
const std::string& name_="Logging options");
diff --git a/qpid/cpp/include/qpid/log/Selector.h b/qpid/cpp/include/qpid/log/Selector.h
index 061152d7e2..a37f4770a0 100644
--- a/qpid/cpp/include/qpid/log/Selector.h
+++ b/qpid/cpp/include/qpid/log/Selector.h
@@ -32,7 +32,7 @@ struct Options;
*
* Thread object unsafe, pass-by-value type.
*/
-class Selector {
+class QPID_COMMON_CLASS_EXTERN Selector {
public:
/** Empty selector selects nothing */
Selector() {}
diff --git a/qpid/cpp/include/qpid/log/SinkOptions.h b/qpid/cpp/include/qpid/log/SinkOptions.h
index 7ec2cfbc17..935804b0e4 100644
--- a/qpid/cpp/include/qpid/log/SinkOptions.h
+++ b/qpid/cpp/include/qpid/log/SinkOptions.h
@@ -35,7 +35,7 @@ class Logger;
* can't be assumed to all have C++ iostreams or files. Thus, this class
* is primarily for implementing in a platform-specific way.
*/
-struct SinkOptions : public qpid::Options {
+struct QPID_COMMON_CLASS_EXTERN SinkOptions : public qpid::Options {
// Create a platform's SinkOptions. Pass argv0 as the program name,
// useful for syslog-type logging.
diff --git a/qpid/cpp/include/qpid/log/Statement.h b/qpid/cpp/include/qpid/log/Statement.h
index 7b3ab60b81..1871c864dd 100644
--- a/qpid/cpp/include/qpid/log/Statement.h
+++ b/qpid/cpp/include/qpid/log/Statement.h
@@ -56,7 +56,7 @@ struct LevelTraits {
};
/** POD struct representing a logging statement in source code. */
-struct Statement {
+struct QPID_COMMON_CLASS_EXTERN Statement {
bool enabled;
const char* file;
int line;
diff --git a/qpid/cpp/include/qpid/management/Buffer.h b/qpid/cpp/include/qpid/management/Buffer.h
index c32494b8c0..205ab1f5b0 100644
--- a/qpid/cpp/include/qpid/management/Buffer.h
+++ b/qpid/cpp/include/qpid/management/Buffer.h
@@ -40,7 +40,7 @@ struct OutOfBounds : qpid::types::Exception {
* This class is a wrapper around qpid::framing::Buffer that does not include any dependencies
* from boost or from qpid::framing.
*/
-class Buffer
+class QPID_COMMON_CLASS_EXTERN Buffer
{
public:
QPID_COMMON_EXTERN Buffer(char* data=0, uint32_t size=0);
diff --git a/qpid/cpp/include/qpid/management/ManagementObject.h b/qpid/cpp/include/qpid/management/ManagementObject.h
index 16bf21038c..4fd9507097 100644
--- a/qpid/cpp/include/qpid/management/ManagementObject.h
+++ b/qpid/cpp/include/qpid/management/ManagementObject.h
@@ -37,7 +37,7 @@ class ObjectId;
class ManagementObject;
-class AgentAttachment {
+class QPID_COMMON_CLASS_EXTERN AgentAttachment {
friend class ObjectId;
private:
uint64_t first;
@@ -48,7 +48,7 @@ public:
};
-class ObjectId {
+class QPID_COMMON_CLASS_EXTERN ObjectId {
protected:
const AgentAttachment* agent;
uint64_t first;
@@ -88,7 +88,7 @@ public:
friend QPID_COMMON_EXTERN std::ostream& operator<<(std::ostream&, const ObjectId&);
};
-class ManagementItem {
+class QPID_COMMON_CLASS_EXTERN ManagementItem {
public:
static const uint8_t TYPE_U8 = 1;
static const uint8_t TYPE_U16 = 2;
diff --git a/qpid/cpp/include/qpid/management/Mutex.h b/qpid/cpp/include/qpid/management/Mutex.h
index 67ae04bae9..59b3464f54 100644
--- a/qpid/cpp/include/qpid/management/Mutex.h
+++ b/qpid/cpp/include/qpid/management/Mutex.h
@@ -48,7 +48,7 @@ namespace qpid {
L& mutex;
};
- class Mutex {
+ class QPID_COMMON_CLASS_EXTERN Mutex {
public:
typedef ScopedLockTemplate<Mutex> ScopedLock;
typedef ScopedUnlockTemplate<Mutex> ScopedUnlock;
diff --git a/qpid/cpp/include/qpid/sys/IOHandle.h b/qpid/cpp/include/qpid/sys/IOHandle.h
index 45fc8c240a..0a72f12165 100644
--- a/qpid/cpp/include/qpid/sys/IOHandle.h
+++ b/qpid/cpp/include/qpid/sys/IOHandle.h
@@ -33,14 +33,14 @@ namespace sys {
*/
class PollerHandle;
class IOHandlePrivate;
-class IOHandle {
+class QPID_COMMON_CLASS_EXTERN IOHandle {
friend class PollerHandle;
friend class IOHandlePrivate;
protected:
IOHandlePrivate* const impl;
- IOHandle(IOHandlePrivate*);
+ QPID_COMMON_EXTERN IOHandle(IOHandlePrivate*);
QPID_COMMON_EXTERN virtual ~IOHandle();
};
diff --git a/qpid/cpp/include/qpid/sys/Thread.h b/qpid/cpp/include/qpid/sys/Thread.h
index f556612908..cf4d10500f 100644
--- a/qpid/cpp/include/qpid/sys/Thread.h
+++ b/qpid/cpp/include/qpid/sys/Thread.h
@@ -44,7 +44,7 @@ namespace sys {
class Runnable;
class ThreadPrivate;
-class Thread
+class QPID_COMMON_CLASS_EXTERN Thread
{
boost::shared_ptr<ThreadPrivate> impl;
diff --git a/qpid/cpp/include/qpid/sys/Time.h b/qpid/cpp/include/qpid/sys/Time.h
index 9c5ac66e9a..e9e164b3fa 100644
--- a/qpid/cpp/include/qpid/sys/Time.h
+++ b/qpid/cpp/include/qpid/sys/Time.h
@@ -77,7 +77,7 @@ class Duration;
* with one of the AbsTime constructors). However trying to add 2 AbsTimes
* doesn't make sense.
*/
-class AbsTime {
+class QPID_COMMON_CLASS_EXTERN AbsTime {
friend class Duration;
friend class Condition;
diff --git a/qpid/cpp/include/qpid/sys/posix/Mutex.h b/qpid/cpp/include/qpid/sys/posix/Mutex.h
index e2b21b5a56..bef35cc19f 100644
--- a/qpid/cpp/include/qpid/sys/posix/Mutex.h
+++ b/qpid/cpp/include/qpid/sys/posix/Mutex.h
@@ -20,6 +20,7 @@
*/
#include "qpid/sys/posix/check.h"
+#include "qpid/CommonImportExport.h"
#include <pthread.h>
#include <boost/noncopyable.hpp>
@@ -32,9 +33,9 @@ class Condition;
/**
* Mutex lock.
*/
-class Mutex : private boost::noncopyable {
+class QPID_COMMON_CLASS_EXTERN Mutex : private boost::noncopyable {
friend class Condition;
- static const pthread_mutexattr_t* getAttribute();
+ QPID_COMMON_EXTERN static const pthread_mutexattr_t* getAttribute();
public:
typedef ::qpid::sys::ScopedLock<Mutex> ScopedLock;
@@ -54,7 +55,7 @@ protected:
/**
* RW lock.
*/
-class RWlock : private boost::noncopyable {
+class QPID_COMMON_CLASS_EXTERN RWlock : private boost::noncopyable {
friend class Condition;
public:
@@ -78,7 +79,7 @@ protected:
* PODMutex is a POD, can be static-initialized with
* PODMutex m = QPID_PODMUTEX_INITIALIZER
*/
-struct PODMutex
+struct QPID_COMMON_CLASS_EXTERN PODMutex
{
typedef ::qpid::sys::ScopedLock<PODMutex> ScopedLock;
diff --git a/qpid/cpp/include/qpid/sys/posix/PrivatePosix.h b/qpid/cpp/include/qpid/sys/posix/PrivatePosix.h
index 79cb950275..2ff5f9e64c 100644
--- a/qpid/cpp/include/qpid/sys/posix/PrivatePosix.h
+++ b/qpid/cpp/include/qpid/sys/posix/PrivatePosix.h
@@ -24,6 +24,7 @@
#include "qpid/sys/Time.h"
#include "qpid/sys/IOHandle.h"
+#include "qpid/CommonImportExport.h"
struct timespec;
struct timeval;
@@ -33,13 +34,14 @@ namespace qpid {
namespace sys {
// Private Time related implementation details
-struct timespec& toTimespec(struct timespec& ts, const Duration& t);
-struct timeval& toTimeval(struct timeval& tv, const Duration& t);
-Duration toTime(const struct timespec& ts);
+QPID_COMMON_EXTERN struct timespec& toTimespec(struct timespec& ts, const Duration& t);
+QPID_COMMON_EXTERN struct timeval& toTimeval(struct timeval& tv, const Duration& t);
+QPID_COMMON_EXTERN Duration toTime(const struct timespec& ts);
// Private SocketAddress details
class SocketAddress;
-const struct addrinfo& getAddrInfo(const SocketAddress&);
+// FIXME aconway 2011-03-22: ??
+const struct addrinfo& QPID_COMMON_EXTERN getAddrInfo(const SocketAddress&);
// Private fd related implementation details
class IOHandlePrivate {
@@ -51,7 +53,7 @@ public:
int fd;
};
-int toFd(const IOHandlePrivate* h);
+QPID_COMMON_EXTERN int toFd(const IOHandlePrivate* h);
// Posix fd as an IOHandle
class PosixIOHandle : public IOHandle {