aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--CMakeLists.txt14
-rw-r--r--cmake/config.hpp.cmake3
-rw-r--r--vmime/address.hpp2
-rw-r--r--vmime/addressList.hpp2
-rw-r--r--vmime/attachment.hpp2
-rw-r--r--vmime/attachmentHelper.hpp2
-rw-r--r--vmime/body.hpp2
-rw-r--r--vmime/bodyPart.hpp2
-rw-r--r--vmime/bodyPartAttachment.hpp2
-rw-r--r--vmime/charset.hpp2
-rw-r--r--vmime/charsetConverter.hpp4
-rw-r--r--vmime/charsetConverterOptions.hpp2
-rw-r--r--vmime/component.hpp2
-rw-r--r--vmime/contentDisposition.hpp2
-rw-r--r--vmime/contentDispositionField.hpp2
-rw-r--r--vmime/contentHandler.hpp2
-rw-r--r--vmime/contentTypeField.hpp2
-rw-r--r--vmime/context.hpp2
-rw-r--r--vmime/dateTime.hpp2
-rw-r--r--vmime/defaultAttachment.hpp2
-rw-r--r--vmime/disposition.hpp2
-rw-r--r--vmime/emailAddress.hpp2
-rw-r--r--vmime/emptyContentHandler.hpp2
-rw-r--r--vmime/encoding.hpp2
-rw-r--r--vmime/exception.hpp108
-rw-r--r--vmime/fileAttachment.hpp2
-rw-r--r--vmime/generatedMessageAttachment.hpp2
-rw-r--r--vmime/generationContext.hpp2
-rw-r--r--vmime/header.hpp2
-rw-r--r--vmime/headerField.hpp2
-rw-r--r--vmime/headerFieldFactory.hpp2
-rw-r--r--vmime/headerFieldValue.hpp2
-rw-r--r--vmime/htmlTextPart.hpp2
-rw-r--r--vmime/mailbox.hpp2
-rw-r--r--vmime/mailboxField.hpp2
-rw-r--r--vmime/mailboxGroup.hpp2
-rw-r--r--vmime/mailboxList.hpp2
-rw-r--r--vmime/mdn/MDNHelper.hpp2
-rw-r--r--vmime/mdn/MDNInfos.hpp2
-rw-r--r--vmime/mdn/receivedMDNInfos.hpp2
-rw-r--r--vmime/mdn/sendableMDNInfos.hpp2
-rw-r--r--vmime/mediaType.hpp2
-rw-r--r--vmime/message.hpp2
-rw-r--r--vmime/messageAttachment.hpp2
-rw-r--r--vmime/messageBuilder.hpp2
-rw-r--r--vmime/messageId.hpp2
-rw-r--r--vmime/messageIdSequence.hpp2
-rw-r--r--vmime/messageParser.hpp2
-rw-r--r--vmime/misc/importanceHelper.hpp2
-rw-r--r--vmime/net/connectionInfos.hpp2
-rw-r--r--vmime/net/defaultConnectionInfos.hpp2
-rw-r--r--vmime/net/events.hpp12
-rw-r--r--vmime/net/folder.hpp2
-rw-r--r--vmime/net/message.hpp6
-rw-r--r--vmime/net/securedConnectionInfos.hpp2
-rw-r--r--vmime/net/service.hpp2
-rw-r--r--vmime/net/serviceFactory.hpp2
-rw-r--r--vmime/net/serviceInfos.hpp2
-rw-r--r--vmime/net/session.hpp2
-rw-r--r--vmime/net/socket.hpp2
-rw-r--r--vmime/net/store.hpp2
-rw-r--r--vmime/net/timeoutHandler.hpp2
-rw-r--r--vmime/net/tls/TLSSecuredConnectionInfos.hpp2
-rw-r--r--vmime/net/tls/TLSSession.hpp2
-rw-r--r--vmime/net/tls/TLSSocket.hpp2
-rw-r--r--vmime/net/transport.hpp2
-rw-r--r--vmime/object.hpp2
-rw-r--r--vmime/parameter.hpp2
-rw-r--r--vmime/parameterizedHeaderField.hpp2
-rw-r--r--vmime/parsedMessageAttachment.hpp2
-rw-r--r--vmime/parsingContext.hpp2
-rw-r--r--vmime/path.hpp2
-rw-r--r--vmime/plainTextPart.hpp2
-rw-r--r--vmime/platform.hpp4
-rw-r--r--vmime/propertySet.hpp2
-rw-r--r--vmime/relay.hpp2
-rw-r--r--vmime/security/authenticator.hpp2
-rw-r--r--vmime/security/cert/X509Certificate.hpp2
-rw-r--r--vmime/security/cert/certificate.hpp2
-rw-r--r--vmime/security/cert/certificateChain.hpp2
-rw-r--r--vmime/security/cert/certificateVerifier.hpp2
-rw-r--r--vmime/security/cert/defaultCertificateVerifier.hpp2
-rw-r--r--vmime/security/defaultAuthenticator.hpp2
-rw-r--r--vmime/security/digest/messageDigest.hpp2
-rw-r--r--vmime/security/digest/messageDigestFactory.hpp2
-rw-r--r--vmime/security/sasl/SASLAuthenticator.hpp2
-rw-r--r--vmime/security/sasl/SASLContext.hpp2
-rw-r--r--vmime/security/sasl/SASLMechanism.hpp2
-rw-r--r--vmime/security/sasl/SASLMechanismFactory.hpp2
-rw-r--r--vmime/security/sasl/SASLSession.hpp2
-rw-r--r--vmime/security/sasl/SASLSocket.hpp2
-rw-r--r--vmime/security/sasl/builtinSASLMechanism.hpp2
-rw-r--r--vmime/security/sasl/defaultSASLAuthenticator.hpp2
-rw-r--r--vmime/streamContentHandler.hpp2
-rw-r--r--vmime/stringContentHandler.hpp2
-rw-r--r--vmime/text.hpp2
-rw-r--r--vmime/textPart.hpp2
-rw-r--r--vmime/textPartFactory.hpp2
-rw-r--r--vmime/utility/childProcess.hpp2
-rw-r--r--vmime/utility/datetimeUtils.hpp2
-rw-r--r--vmime/utility/encoder/encoder.hpp2
-rw-r--r--vmime/utility/file.hpp10
-rw-r--r--vmime/utility/filteredStream.hpp14
-rw-r--r--vmime/utility/inputStream.hpp2
-rw-r--r--vmime/utility/inputStreamAdapter.hpp2
-rw-r--r--vmime/utility/inputStreamByteBufferAdapter.hpp2
-rw-r--r--vmime/utility/inputStreamPointerAdapter.hpp2
-rw-r--r--vmime/utility/inputStreamSocketAdapter.hpp2
-rw-r--r--vmime/utility/inputStreamStringAdapter.hpp2
-rw-r--r--vmime/utility/inputStreamStringProxyAdapter.hpp2
-rw-r--r--vmime/utility/outputStream.hpp2
-rw-r--r--vmime/utility/outputStreamAdapter.hpp2
-rw-r--r--vmime/utility/outputStreamByteArrayAdapter.hpp2
-rw-r--r--vmime/utility/outputStreamSocketAdapter.hpp2
-rw-r--r--vmime/utility/outputStreamStringAdapter.hpp2
-rw-r--r--vmime/utility/parserInputStreamAdapter.hpp2
-rw-r--r--vmime/utility/path.hpp2
-rw-r--r--vmime/utility/progressListener.hpp5
-rw-r--r--vmime/utility/seekableInputStream.hpp2
-rw-r--r--vmime/utility/seekableInputStreamRegionAdapter.hpp2
-rw-r--r--vmime/utility/smartPtr.hpp12
-rw-r--r--vmime/utility/stream.hpp2
-rw-r--r--vmime/utility/stringProxy.hpp2
-rw-r--r--vmime/utility/stringUtils.hpp2
-rw-r--r--vmime/utility/sync/autoLock.hpp2
-rw-r--r--vmime/utility/sync/criticalSection.hpp2
-rw-r--r--vmime/utility/url.hpp2
-rw-r--r--vmime/utility/urlUtils.hpp2
-rw-r--r--vmime/word.hpp2
-rw-r--r--vmime/wordEncoder.hpp2
131 files changed, 226 insertions, 205 deletions
diff --git a/.gitignore b/.gitignore
index ddd45636..1c3c6d3d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,6 +25,7 @@ doc/html/*
/libvmime.a
/vmime.pc
/vmime/config.hpp
+/vmime/export.hpp
/COPYING.txt
/build/
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1c45d892..89f0890f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,7 +12,7 @@
# http://www.cmake.org
#
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.3 FATAL_ERROR)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.6 FATAL_ERROR)
INCLUDE(cmake/Utils.cmake)
@@ -79,6 +79,7 @@ FILE(
)
LIST(APPEND VMIME_LIBRARY_INCLUDE_FILES "vmime/config.hpp")
+LIST(APPEND VMIME_LIBRARY_INCLUDE_FILES "vmime/export.hpp")
INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_SOURCE_DIR}
@@ -93,6 +94,10 @@ OPTION(
IF(VMIME_BUILD_SHARED_LIBRARY)
+ INCLUDE(GenerateExportHeader)
+
+ ADD_COMPILER_EXPORT_FLAGS()
+
ADD_LIBRARY(
${VMIME_LIBRARY_NAME}
SHARED
@@ -100,6 +105,12 @@ IF(VMIME_BUILD_SHARED_LIBRARY)
${VMIME_LIBRARY_INCLUDE_FILES}
)
+ GENERATE_EXPORT_HEADER(
+ ${VMIME_LIBRARY_NAME}
+ BASE_NAME VMIME
+ EXPORT_FILE_NAME vmime/export.hpp
+ )
+
SET_TARGET_PROPERTIES(
${VMIME_LIBRARY_NAME}
PROPERTIES
@@ -132,6 +143,7 @@ IF(VMIME_BUILD_STATIC_LIBRARY)
${VMIME_LIBRARY_NAME}-static
PROPERTIES
OUTPUT_NAME ${VMIME_LIBRARY_NAME}
+ COMPILE_FLAGS -DVMIME_STATIC_DEFINE
)
ENDIF()
diff --git a/cmake/config.hpp.cmake b/cmake/config.hpp.cmake
index 71badf40..cddf7ef1 100644
--- a/cmake/config.hpp.cmake
+++ b/cmake/config.hpp.cmake
@@ -6,6 +6,9 @@
#define VMIME_CONFIG_HPP_INCLUDED
+#include "vmime/export.hpp"
+
+
// Name of package
#define VMIME_PACKAGE "@PROJECT_NAME@"
diff --git a/vmime/address.hpp b/vmime/address.hpp
index c6cd6dc6..3c0c0b2a 100644
--- a/vmime/address.hpp
+++ b/vmime/address.hpp
@@ -39,7 +39,7 @@ namespace vmime
* and mailboxGroup classes.
*/
-class address : public headerFieldValue
+class VMIME_EXPORT address : public headerFieldValue
{
protected:
diff --git a/vmime/addressList.hpp b/vmime/addressList.hpp
index b7bb40cb..9fd5ab08 100644
--- a/vmime/addressList.hpp
+++ b/vmime/addressList.hpp
@@ -41,7 +41,7 @@ class mailboxList;
/** A list of addresses.
*/
-class addressList : public headerFieldValue
+class VMIME_EXPORT addressList : public headerFieldValue
{
public:
diff --git a/vmime/attachment.hpp b/vmime/attachment.hpp
index 83abf713..e131fcd0 100644
--- a/vmime/attachment.hpp
+++ b/vmime/attachment.hpp
@@ -41,7 +41,7 @@ namespace vmime
/** Base class for all types of attachment.
*/
-class attachment : public object
+class VMIME_EXPORT attachment : public object
{
friend class messageBuilder;
friend class messageParser;
diff --git a/vmime/attachmentHelper.hpp b/vmime/attachmentHelper.hpp
index 47794e05..0dd052cb 100644
--- a/vmime/attachmentHelper.hpp
+++ b/vmime/attachmentHelper.hpp
@@ -37,7 +37,7 @@ namespace vmime
/** Retrieve attachment information from message parts.
*/
-class attachmentHelper
+class VMIME_EXPORT attachmentHelper
{
public:
diff --git a/vmime/body.hpp b/vmime/body.hpp
index 3ba140c8..f9781eeb 100644
--- a/vmime/body.hpp
+++ b/vmime/body.hpp
@@ -47,7 +47,7 @@ class bodyPart;
/** Body section of a MIME part.
*/
-class body : public component
+class VMIME_EXPORT body : public component
{
friend class bodyPart;
diff --git a/vmime/bodyPart.hpp b/vmime/bodyPart.hpp
index 5972cea3..e54f7c0a 100644
--- a/vmime/bodyPart.hpp
+++ b/vmime/bodyPart.hpp
@@ -39,7 +39,7 @@ namespace vmime
/** A MIME part.
*/
-class bodyPart : public component
+class VMIME_EXPORT bodyPart : public component
{
friend class body;
diff --git a/vmime/bodyPartAttachment.hpp b/vmime/bodyPartAttachment.hpp
index 8a567f72..b885d020 100644
--- a/vmime/bodyPartAttachment.hpp
+++ b/vmime/bodyPartAttachment.hpp
@@ -40,7 +40,7 @@ namespace vmime
/** An attachment related to a local body part.
*/
-class bodyPartAttachment : public attachment
+class VMIME_EXPORT bodyPartAttachment : public attachment
{
friend class creator;
diff --git a/vmime/charset.hpp b/vmime/charset.hpp
index b88b5eff..c77a2e01 100644
--- a/vmime/charset.hpp
+++ b/vmime/charset.hpp
@@ -42,7 +42,7 @@ class encoding; // forward reference
/** Charset description (basic type).
*/
-class charset : public component
+class VMIME_EXPORT charset : public component
{
public:
diff --git a/vmime/charsetConverter.hpp b/vmime/charsetConverter.hpp
index dcf90e48..9a4f8b37 100644
--- a/vmime/charsetConverter.hpp
+++ b/vmime/charsetConverter.hpp
@@ -48,7 +48,7 @@ namespace utility
* occured when initializing convert, or during charset conversion.
*/
-class charsetFilteredOutputStream : public filteredOutputStream
+class VMIME_EXPORT charsetFilteredOutputStream : public filteredOutputStream
{
};
@@ -59,7 +59,7 @@ class charsetFilteredOutputStream : public filteredOutputStream
/** Convert between charsets.
*/
-class charsetConverter : public object
+class VMIME_EXPORT charsetConverter : public object
{
public:
diff --git a/vmime/charsetConverterOptions.hpp b/vmime/charsetConverterOptions.hpp
index ee75c1cb..07e7a138 100644
--- a/vmime/charsetConverterOptions.hpp
+++ b/vmime/charsetConverterOptions.hpp
@@ -35,7 +35,7 @@ namespace vmime
/** Options for charset conversion.
*/
-class charsetConverterOptions : public object
+class VMIME_EXPORT charsetConverterOptions : public object
{
public:
diff --git a/vmime/component.hpp b/vmime/component.hpp
index 3dca5f66..6a7ff43c 100644
--- a/vmime/component.hpp
+++ b/vmime/component.hpp
@@ -42,7 +42,7 @@ namespace vmime
* It defines methods for parsing and generating a component.
*/
-class component : public object
+class VMIME_EXPORT component : public object
{
public:
diff --git a/vmime/contentDisposition.hpp b/vmime/contentDisposition.hpp
index 69c0f313..9407885d 100644
--- a/vmime/contentDisposition.hpp
+++ b/vmime/contentDisposition.hpp
@@ -36,7 +36,7 @@ namespace vmime
/** Content disposition (basic type).
*/
-class contentDisposition : public headerFieldValue
+class VMIME_EXPORT contentDisposition : public headerFieldValue
{
public:
diff --git a/vmime/contentDispositionField.hpp b/vmime/contentDispositionField.hpp
index b9a1d683..58b40dff 100644
--- a/vmime/contentDispositionField.hpp
+++ b/vmime/contentDispositionField.hpp
@@ -36,7 +36,7 @@ namespace vmime
{
-class contentDispositionField : public parameterizedHeaderField
+class VMIME_EXPORT contentDispositionField : public parameterizedHeaderField
{
friend class vmime::creator; // create ref
diff --git a/vmime/contentHandler.hpp b/vmime/contentHandler.hpp
index 45d59ea7..05e356e4 100644
--- a/vmime/contentHandler.hpp
+++ b/vmime/contentHandler.hpp
@@ -38,7 +38,7 @@ namespace vmime
{
-class contentHandler : public object
+class VMIME_EXPORT contentHandler : public object
{
public:
diff --git a/vmime/contentTypeField.hpp b/vmime/contentTypeField.hpp
index 1ad2da4b..b522927a 100644
--- a/vmime/contentTypeField.hpp
+++ b/vmime/contentTypeField.hpp
@@ -35,7 +35,7 @@ namespace vmime
{
-class contentTypeField : public parameterizedHeaderField
+class VMIME_EXPORT contentTypeField : public parameterizedHeaderField
{
friend class vmime::creator; // create ref
diff --git a/vmime/context.hpp b/vmime/context.hpp
index c369fb92..767ec05a 100644
--- a/vmime/context.hpp
+++ b/vmime/context.hpp
@@ -36,7 +36,7 @@ namespace vmime
/** Holds configuration parameters used either for parsing or generating messages.
*/
-class context : public object
+class VMIME_EXPORT context : public object
{
public:
diff --git a/vmime/dateTime.hpp b/vmime/dateTime.hpp
index b7f5d273..1d25124a 100644
--- a/vmime/dateTime.hpp
+++ b/vmime/dateTime.hpp
@@ -38,7 +38,7 @@ namespace vmime
/** Date and time (basic type).
*/
-class datetime : public headerFieldValue
+class VMIME_EXPORT datetime : public headerFieldValue
{
public:
diff --git a/vmime/defaultAttachment.hpp b/vmime/defaultAttachment.hpp
index d576ab0d..171b7a84 100644
--- a/vmime/defaultAttachment.hpp
+++ b/vmime/defaultAttachment.hpp
@@ -36,7 +36,7 @@ namespace vmime
/** Default implementation for attachments.
*/
-class defaultAttachment : public attachment
+class VMIME_EXPORT defaultAttachment : public attachment
{
protected:
diff --git a/vmime/disposition.hpp b/vmime/disposition.hpp
index 1c14f532..b75327a1 100644
--- a/vmime/disposition.hpp
+++ b/vmime/disposition.hpp
@@ -38,7 +38,7 @@ namespace vmime
/** Disposition - from RFC-3798 (basic type).
*/
-class disposition : public headerFieldValue
+class VMIME_EXPORT disposition : public headerFieldValue
{
public:
diff --git a/vmime/emailAddress.hpp b/vmime/emailAddress.hpp
index e9512d98..598d0f45 100644
--- a/vmime/emailAddress.hpp
+++ b/vmime/emailAddress.hpp
@@ -36,7 +36,7 @@ namespace vmime
/** An email address: local name and domain name (basic type).
*/
-class emailAddress : public component
+class VMIME_EXPORT emailAddress : public component
{
public:
diff --git a/vmime/emptyContentHandler.hpp b/vmime/emptyContentHandler.hpp
index a4b2413d..e4f8597e 100644
--- a/vmime/emptyContentHandler.hpp
+++ b/vmime/emptyContentHandler.hpp
@@ -32,7 +32,7 @@ namespace vmime
{
-class emptyContentHandler : public contentHandler
+class VMIME_EXPORT emptyContentHandler : public contentHandler
{
public:
diff --git a/vmime/encoding.hpp b/vmime/encoding.hpp
index 4266856f..e4f07b68 100644
--- a/vmime/encoding.hpp
+++ b/vmime/encoding.hpp
@@ -41,7 +41,7 @@ class contentHandler;
/** Content encoding (basic type).
*/
-class encoding : public headerFieldValue
+class VMIME_EXPORT encoding : public headerFieldValue
{
public:
diff --git a/vmime/exception.hpp b/vmime/exception.hpp
index fc9efed6..b3bb02b0 100644
--- a/vmime/exception.hpp
+++ b/vmime/exception.hpp
@@ -39,7 +39,7 @@ namespace vmime
/** Base class for VMime exceptions.
*/
-class exception : public std::exception
+class VMIME_EXPORT exception : public std::exception
{
private:
@@ -98,7 +98,7 @@ namespace exceptions
{
-class bad_field_value_type : public vmime::exception
+class VMIME_EXPORT bad_field_value_type : public vmime::exception
{
public:
@@ -110,7 +110,7 @@ public:
};
-class charset_conv_error : public vmime::exception
+class VMIME_EXPORT charset_conv_error : public vmime::exception
{
public:
@@ -125,7 +125,7 @@ public:
/** No encoder has been found for the specified encoding name.
*/
-class no_encoder_available : public vmime::exception
+class VMIME_EXPORT no_encoder_available : public vmime::exception
{
public:
@@ -140,7 +140,7 @@ public:
/** No algorithm has been found for the specified name.
*/
-class no_digest_algorithm_available : public vmime::exception
+class VMIME_EXPORT no_digest_algorithm_available : public vmime::exception
{
public:
@@ -152,7 +152,7 @@ public:
};
-class no_such_parameter : public vmime::exception
+class VMIME_EXPORT no_such_parameter : public vmime::exception
{
public:
@@ -164,7 +164,7 @@ public:
};
-class no_such_field : public vmime::exception
+class VMIME_EXPORT no_such_field : public vmime::exception
{
public:
@@ -176,7 +176,7 @@ public:
};
-class no_such_part : public vmime::exception
+class VMIME_EXPORT no_such_part : public vmime::exception
{
public:
@@ -188,7 +188,7 @@ public:
};
-class no_such_mailbox : public vmime::exception
+class VMIME_EXPORT no_such_mailbox : public vmime::exception
{
public:
@@ -200,7 +200,7 @@ public:
};
-class no_such_message_id : public vmime::exception
+class VMIME_EXPORT no_such_message_id : public vmime::exception
{
public:
@@ -212,7 +212,7 @@ public:
};
-class no_such_address : public vmime::exception
+class VMIME_EXPORT no_such_address : public vmime::exception
{
public:
@@ -224,7 +224,7 @@ public:
};
-class open_file_error : public vmime::exception
+class VMIME_EXPORT open_file_error : public vmime::exception
{
public:
@@ -236,7 +236,7 @@ public:
};
-class no_factory_available : public vmime::exception
+class VMIME_EXPORT no_factory_available : public vmime::exception
{
public:
@@ -248,7 +248,7 @@ public:
};
-class no_platform_handler : public vmime::exception
+class VMIME_EXPORT no_platform_handler : public vmime::exception
{
public:
@@ -263,7 +263,7 @@ public:
/** No expeditor specified.
*/
-class no_expeditor : public vmime::exception
+class VMIME_EXPORT no_expeditor : public vmime::exception
{
public:
@@ -278,7 +278,7 @@ public:
/** No recipient specified.
*/
-class no_recipient : public vmime::exception
+class VMIME_EXPORT no_recipient : public vmime::exception
{
public:
@@ -290,7 +290,7 @@ public:
};
-class no_object_found : public vmime::exception
+class VMIME_EXPORT no_object_found : public vmime::exception
{
public:
@@ -305,7 +305,7 @@ public:
/** There is no property with that name in the set.
*/
-class no_such_property : public vmime::exception
+class VMIME_EXPORT no_such_property : public vmime::exception
{
public:
@@ -320,7 +320,7 @@ public:
/** Bad type specified when reading property.
*/
-class invalid_property_type : public vmime::exception
+class VMIME_EXPORT invalid_property_type : public vmime::exception
{
public:
@@ -335,7 +335,7 @@ public:
/** Bad argument was passed to the function.
*/
-class invalid_argument : public vmime::exception
+class VMIME_EXPORT invalid_argument : public vmime::exception
{
public:
@@ -350,7 +350,7 @@ public:
/** Underlying operating system error.
*/
-class system_error : public vmime::exception
+class VMIME_EXPORT system_error : public vmime::exception
{
public:
@@ -365,7 +365,7 @@ public:
/** The URL is malformed.
*/
-class malformed_url : public vmime::exception
+class VMIME_EXPORT malformed_url : public vmime::exception
{
public:
@@ -384,7 +384,7 @@ public:
/** Base class for exceptions thrown by the networking module.
*/
-class net_exception : public vmime::exception
+class VMIME_EXPORT net_exception : public vmime::exception
{
public:
@@ -405,7 +405,7 @@ typedef net_exception messaging_exception;
/** Socket error.
*/
-class socket_exception : public net_exception
+class VMIME_EXPORT socket_exception : public net_exception
{
public:
@@ -422,7 +422,7 @@ public:
* or a connection error (for example, time-out while connecting).
*/
-class connection_error : public socket_exception
+class VMIME_EXPORT connection_error : public socket_exception
{
public:
@@ -437,7 +437,7 @@ public:
/** Server did not initiated the connection correctly.
*/
-class connection_greeting_error : public net_exception
+class VMIME_EXPORT connection_greeting_error : public net_exception
{
public:
@@ -459,7 +459,7 @@ private:
* or password, or wrong authentication method).
*/
-class authentication_error : public net_exception
+class VMIME_EXPORT authentication_error : public net_exception
{
public:
@@ -480,7 +480,7 @@ private:
/** Option not supported.
*/
-class unsupported_option : public net_exception
+class VMIME_EXPORT unsupported_option : public net_exception
{
public:
@@ -495,7 +495,7 @@ public:
/** No service available for this protocol.
*/
-class no_service_available : public net_exception
+class VMIME_EXPORT no_service_available : public net_exception
{
public:
@@ -511,7 +511,7 @@ public:
* operation (for example, you try to close a folder which is not open).
*/
-class illegal_state : public net_exception
+class VMIME_EXPORT illegal_state : public net_exception
{
public:
@@ -526,7 +526,7 @@ public:
/** Folder not found (does not exist).
*/
-class folder_not_found : public net_exception
+class VMIME_EXPORT folder_not_found : public net_exception
{
public:
@@ -541,7 +541,7 @@ public:
/** Message not found (does not exist).
*/
-class message_not_found : public net_exception
+class VMIME_EXPORT message_not_found : public net_exception
{
public:
@@ -556,7 +556,7 @@ public:
/** Operation not supported by the underlying protocol.
*/
-class operation_not_supported : public net_exception
+class VMIME_EXPORT operation_not_supported : public net_exception
{
public:
@@ -571,7 +571,7 @@ public:
/** The operation timed out (time-out delay is elapsed).
*/
-class operation_timed_out : public net_exception
+class VMIME_EXPORT operation_timed_out : public net_exception
{
public:
@@ -586,7 +586,7 @@ public:
/** The operation has been cancelled.
*/
-class operation_cancelled : public net_exception
+class VMIME_EXPORT operation_cancelled : public net_exception
{
public:
@@ -602,7 +602,7 @@ public:
* the requested object.
*/
-class unfetched_object : public net_exception
+class VMIME_EXPORT unfetched_object : public net_exception
{
public:
@@ -617,7 +617,7 @@ public:
/** The service is not currently connected.
*/
-class not_connected : public net_exception
+class VMIME_EXPORT not_connected : public net_exception
{
public:
@@ -632,7 +632,7 @@ public:
/** The service is already connected (must disconnect before).
*/
-class already_connected : public net_exception
+class VMIME_EXPORT already_connected : public net_exception
{
public:
@@ -647,7 +647,7 @@ public:
/** Illegal operation: cannot run this operation on the object.
*/
-class illegal_operation : public net_exception
+class VMIME_EXPORT illegal_operation : public net_exception
{
public:
@@ -662,7 +662,7 @@ public:
/** Command error: operation failed (this is specific to the underlying protocol).
*/
-class command_error : public net_exception
+class VMIME_EXPORT command_error : public net_exception
{
public:
@@ -696,7 +696,7 @@ private:
/** The server returned an invalid response.
*/
-class invalid_response : public net_exception
+class VMIME_EXPORT invalid_response : public net_exception
{
public:
@@ -730,7 +730,7 @@ private:
/** Partial fetch is not supported by the underlying protocol.
*/
-class partial_fetch_not_supported : public net_exception
+class VMIME_EXPORT partial_fetch_not_supported : public net_exception
{
public:
@@ -745,7 +745,7 @@ public:
/** Folder name is invalid.
*/
-class invalid_folder_name : public net_exception
+class VMIME_EXPORT invalid_folder_name : public net_exception
{
public:
@@ -766,7 +766,7 @@ public:
/** Base class for exceptions thrown by the filesystem features.
*/
-class filesystem_exception : public vmime::exception
+class VMIME_EXPORT filesystem_exception : public vmime::exception
{
public:
@@ -791,7 +791,7 @@ private:
/** File is not a directory.
*/
-class not_a_directory : public filesystem_exception
+class VMIME_EXPORT not_a_directory : public filesystem_exception
{
public:
@@ -806,7 +806,7 @@ public:
/** File not found.
*/
-class file_not_found : public filesystem_exception
+class VMIME_EXPORT file_not_found : public filesystem_exception
{
public:
@@ -824,7 +824,7 @@ public:
/** Authentication exception.
*/
-class authentication_exception : public vmime::exception
+class VMIME_EXPORT authentication_exception : public vmime::exception
{
public:
@@ -839,7 +839,7 @@ public:
/** The requested information cannot be provided.
*/
-class no_auth_information : public authentication_exception
+class VMIME_EXPORT no_auth_information : public authentication_exception
{
public:
@@ -857,7 +857,7 @@ public:
/** Base class for exceptions thrown by SASL module.
*/
-class sasl_exception : public authentication_exception
+class VMIME_EXPORT sasl_exception : public authentication_exception
{
public:
@@ -872,7 +872,7 @@ public:
/** No mechanism is registered with the specified name.
*/
-class no_such_mechanism : public sasl_exception
+class VMIME_EXPORT no_such_mechanism : public sasl_exception
{
public:
@@ -893,7 +893,7 @@ public:
/** Base class for exceptions thrown by TLS module.
*/
-class tls_exception : public vmime::exception
+class VMIME_EXPORT tls_exception : public vmime::exception
{
public:
@@ -905,7 +905,7 @@ public:
};
-class certificate_exception : public tls_exception
+class VMIME_EXPORT certificate_exception : public tls_exception
{
public:
@@ -917,7 +917,7 @@ public:
};
-class certificate_verification_exception : public certificate_exception
+class VMIME_EXPORT certificate_verification_exception : public certificate_exception
{
public:
@@ -929,7 +929,7 @@ public:
};
-class unsupported_certificate_type : public certificate_exception
+class VMIME_EXPORT unsupported_certificate_type : public certificate_exception
{
public:
diff --git a/vmime/fileAttachment.hpp b/vmime/fileAttachment.hpp
index c101489f..da4f638b 100644
--- a/vmime/fileAttachment.hpp
+++ b/vmime/fileAttachment.hpp
@@ -42,7 +42,7 @@ namespace vmime
/** Attachment of type 'file'.
*/
-class fileAttachment : public defaultAttachment
+class VMIME_EXPORT fileAttachment : public defaultAttachment
{
public:
diff --git a/vmime/generatedMessageAttachment.hpp b/vmime/generatedMessageAttachment.hpp
index 08106bb8..4c9c0aba 100644
--- a/vmime/generatedMessageAttachment.hpp
+++ b/vmime/generatedMessageAttachment.hpp
@@ -38,7 +38,7 @@ namespace vmime
/** A message attachment that can be extracted from a message.
*/
-class generatedMessageAttachment : public messageAttachment
+class VMIME_EXPORT generatedMessageAttachment : public messageAttachment
{
public:
diff --git a/vmime/generationContext.hpp b/vmime/generationContext.hpp
index cf7e7499..743ae6f5 100644
--- a/vmime/generationContext.hpp
+++ b/vmime/generationContext.hpp
@@ -35,7 +35,7 @@ namespace vmime
/** Holds configuration parameters used for generating messages.
*/
-class generationContext : public context
+class VMIME_EXPORT generationContext : public context
{
public:
diff --git a/vmime/header.hpp b/vmime/header.hpp
index cb44c41d..9e3a2f1e 100644
--- a/vmime/header.hpp
+++ b/vmime/header.hpp
@@ -43,7 +43,7 @@ class bodyPart;
/** Header section of a MIME part.
*/
-class header : public component
+class VMIME_EXPORT header : public component
{
friend class bodyPart;
friend class body;
diff --git a/vmime/headerField.hpp b/vmime/headerField.hpp
index a6e80e32..8f8c2a1c 100644
--- a/vmime/headerField.hpp
+++ b/vmime/headerField.hpp
@@ -37,7 +37,7 @@ namespace vmime
/** Base class for header fields.
*/
-class headerField : public component
+class VMIME_EXPORT headerField : public component
{
friend class headerFieldFactory;
friend class header;
diff --git a/vmime/headerFieldFactory.hpp b/vmime/headerFieldFactory.hpp
index 6132cee6..e8a1a84c 100644
--- a/vmime/headerFieldFactory.hpp
+++ b/vmime/headerFieldFactory.hpp
@@ -36,7 +36,7 @@ namespace vmime
/** Creates header field and header field value objects.
*/
-class headerFieldFactory
+class VMIME_EXPORT headerFieldFactory
{
protected:
diff --git a/vmime/headerFieldValue.hpp b/vmime/headerFieldValue.hpp
index 00cac24d..1950abef 100644
--- a/vmime/headerFieldValue.hpp
+++ b/vmime/headerFieldValue.hpp
@@ -37,7 +37,7 @@ namespace vmime
* for a header field.
*/
-class headerFieldValue : public component
+class VMIME_EXPORT headerFieldValue : public component
{
public:
diff --git a/vmime/htmlTextPart.hpp b/vmime/htmlTextPart.hpp
index da447ca3..170c0546 100644
--- a/vmime/htmlTextPart.hpp
+++ b/vmime/htmlTextPart.hpp
@@ -39,7 +39,7 @@ namespace vmime
/** Text part of type 'text/html'.
*/
-class htmlTextPart : public textPart
+class VMIME_EXPORT htmlTextPart : public textPart
{
public:
diff --git a/vmime/mailbox.hpp b/vmime/mailbox.hpp
index ec071db3..b6dc9fbe 100644
--- a/vmime/mailbox.hpp
+++ b/vmime/mailbox.hpp
@@ -37,7 +37,7 @@ namespace vmime
/** A mailbox: full name + email (basic type).
*/
-class mailbox : public address
+class VMIME_EXPORT mailbox : public address
{
friend class mailboxGroup;
friend class mailboxField;
diff --git a/vmime/mailboxField.hpp b/vmime/mailboxField.hpp
index 55368643..798e84d7 100644
--- a/vmime/mailboxField.hpp
+++ b/vmime/mailboxField.hpp
@@ -41,7 +41,7 @@ namespace vmime
* and contains multiple addresses.
*/
-class mailboxField : public headerField
+class VMIME_EXPORT mailboxField : public headerField
{
friend class vmime::creator; // create ref
diff --git a/vmime/mailboxGroup.hpp b/vmime/mailboxGroup.hpp
index 509e06b7..1c0511e1 100644
--- a/vmime/mailboxGroup.hpp
+++ b/vmime/mailboxGroup.hpp
@@ -37,7 +37,7 @@ namespace vmime
/** A group of mailboxes (basic type).
*/
-class mailboxGroup : public address
+class VMIME_EXPORT mailboxGroup : public address
{
public:
diff --git a/vmime/mailboxList.hpp b/vmime/mailboxList.hpp
index d08cf2bb..1b4cbb50 100644
--- a/vmime/mailboxList.hpp
+++ b/vmime/mailboxList.hpp
@@ -39,7 +39,7 @@ namespace vmime
* from inserting mailbox groups where it is not allowed by the RFC.
*/
-class mailboxList : public headerFieldValue
+class VMIME_EXPORT mailboxList : public headerFieldValue
{
public:
diff --git a/vmime/mdn/MDNHelper.hpp b/vmime/mdn/MDNHelper.hpp
index d06c47ce..0e853989 100644
--- a/vmime/mdn/MDNHelper.hpp
+++ b/vmime/mdn/MDNHelper.hpp
@@ -39,7 +39,7 @@ namespace mdn {
* Notifications (MDN), as defined in RFC-3798.
*/
-class MDNHelper
+class VMIME_EXPORT MDNHelper
{
public:
diff --git a/vmime/mdn/MDNInfos.hpp b/vmime/mdn/MDNInfos.hpp
index abc18bfa..d77a0306 100644
--- a/vmime/mdn/MDNInfos.hpp
+++ b/vmime/mdn/MDNInfos.hpp
@@ -36,7 +36,7 @@ namespace mdn {
/** Holds information about Message Disposition Notifications (MDN).
*/
-class MDNInfos : public object
+class VMIME_EXPORT MDNInfos : public object
{
public:
diff --git a/vmime/mdn/receivedMDNInfos.hpp b/vmime/mdn/receivedMDNInfos.hpp
index 780187d4..23cf77f2 100644
--- a/vmime/mdn/receivedMDNInfos.hpp
+++ b/vmime/mdn/receivedMDNInfos.hpp
@@ -40,7 +40,7 @@ namespace mdn {
* that has been received.
*/
-class receivedMDNInfos : public MDNInfos
+class VMIME_EXPORT receivedMDNInfos : public MDNInfos
{
public:
diff --git a/vmime/mdn/sendableMDNInfos.hpp b/vmime/mdn/sendableMDNInfos.hpp
index e32f7b73..f886b5fa 100644
--- a/vmime/mdn/sendableMDNInfos.hpp
+++ b/vmime/mdn/sendableMDNInfos.hpp
@@ -38,7 +38,7 @@ namespace mdn {
* that is to be sent.
*/
-class sendableMDNInfos : public MDNInfos
+class VMIME_EXPORT sendableMDNInfos : public MDNInfos
{
public:
diff --git a/vmime/mediaType.hpp b/vmime/mediaType.hpp
index 866810fa..b396c8bf 100644
--- a/vmime/mediaType.hpp
+++ b/vmime/mediaType.hpp
@@ -36,7 +36,7 @@ namespace vmime
/** Content media type (basic type).
*/
-class mediaType : public headerFieldValue
+class VMIME_EXPORT mediaType : public headerFieldValue
{
public:
diff --git a/vmime/message.hpp b/vmime/message.hpp
index ebb767e7..22523efc 100644
--- a/vmime/message.hpp
+++ b/vmime/message.hpp
@@ -36,7 +36,7 @@ namespace vmime
/** A MIME message.
*/
-class message : public bodyPart
+class VMIME_EXPORT message : public bodyPart
{
public:
diff --git a/vmime/messageAttachment.hpp b/vmime/messageAttachment.hpp
index 6a3fe496..b6b360f4 100644
--- a/vmime/messageAttachment.hpp
+++ b/vmime/messageAttachment.hpp
@@ -36,7 +36,7 @@ namespace vmime
/** Attachment of type message/rfc822.
*/
-class messageAttachment : public attachment
+class VMIME_EXPORT messageAttachment : public attachment
{
public:
diff --git a/vmime/messageBuilder.hpp b/vmime/messageBuilder.hpp
index 5a55ffc6..f3f9fa0d 100644
--- a/vmime/messageBuilder.hpp
+++ b/vmime/messageBuilder.hpp
@@ -44,7 +44,7 @@ namespace vmime
/** A helper for building MIME messages.
*/
-class messageBuilder
+class VMIME_EXPORT messageBuilder
{
public:
diff --git a/vmime/messageId.hpp b/vmime/messageId.hpp
index b8c4693f..7d6348e3 100644
--- a/vmime/messageId.hpp
+++ b/vmime/messageId.hpp
@@ -36,7 +36,7 @@ namespace vmime
/** Message identifier (basic type).
*/
-class messageId : public headerFieldValue
+class VMIME_EXPORT messageId : public headerFieldValue
{
friend class messageIdSequence;
diff --git a/vmime/messageIdSequence.hpp b/vmime/messageIdSequence.hpp
index 8ec7292a..ec54dbd3 100644
--- a/vmime/messageIdSequence.hpp
+++ b/vmime/messageIdSequence.hpp
@@ -35,7 +35,7 @@ namespace vmime
/** A list of message identifiers (basic type).
*/
-class messageIdSequence : public headerFieldValue
+class VMIME_EXPORT messageIdSequence : public headerFieldValue
{
public:
diff --git a/vmime/messageParser.hpp b/vmime/messageParser.hpp
index 631b4315..d89170ad 100644
--- a/vmime/messageParser.hpp
+++ b/vmime/messageParser.hpp
@@ -44,7 +44,7 @@ namespace vmime
/** A helper for parsing MIME messages.
*/
-class messageParser
+class VMIME_EXPORT messageParser
{
public:
diff --git a/vmime/misc/importanceHelper.hpp b/vmime/misc/importanceHelper.hpp
index 5d38a9fa..c5c48f50 100644
--- a/vmime/misc/importanceHelper.hpp
+++ b/vmime/misc/importanceHelper.hpp
@@ -39,7 +39,7 @@ namespace misc {
* and 'Importance' (RFC-1327, RFC-1911) fields.
*/
-class importanceHelper
+class VMIME_EXPORT importanceHelper
{
public:
diff --git a/vmime/net/connectionInfos.hpp b/vmime/net/connectionInfos.hpp
index 0fc2c336..6c86eeab 100644
--- a/vmime/net/connectionInfos.hpp
+++ b/vmime/net/connectionInfos.hpp
@@ -40,7 +40,7 @@ namespace net {
/** Information about the connection used by a service.
*/
-class connectionInfos : public object
+class VMIME_EXPORT connectionInfos : public object
{
public:
diff --git a/vmime/net/defaultConnectionInfos.hpp b/vmime/net/defaultConnectionInfos.hpp
index 59124544..50673bbc 100644
--- a/vmime/net/defaultConnectionInfos.hpp
+++ b/vmime/net/defaultConnectionInfos.hpp
@@ -40,7 +40,7 @@ namespace net {
/** Information about the connection used by a service.
*/
-class defaultConnectionInfos : public connectionInfos
+class VMIME_EXPORT defaultConnectionInfos : public connectionInfos
{
public:
diff --git a/vmime/net/events.hpp b/vmime/net/events.hpp
index 0535aa6b..d42f3c1c 100644
--- a/vmime/net/events.hpp
+++ b/vmime/net/events.hpp
@@ -47,7 +47,7 @@ namespace events {
/** Event about the message count in a folder.
*/
-class messageCountEvent
+class VMIME_EXPORT messageCountEvent
{
public:
@@ -95,7 +95,7 @@ private:
/** Listener for events about the message count in a folder.
*/
-class messageCountListener
+class VMIME_EXPORT messageCountListener
{
protected:
@@ -111,7 +111,7 @@ public:
/** Event occuring on a message.
*/
-class messageChangedEvent
+class VMIME_EXPORT messageChangedEvent
{
public:
@@ -158,7 +158,7 @@ private:
/** Listener for events occuring on a message.
*/
-class messageChangedListener
+class VMIME_EXPORT messageChangedListener
{
protected:
@@ -173,7 +173,7 @@ public:
/** Event occuring on a folder.
*/
-class folderEvent
+class VMIME_EXPORT folderEvent
{
public:
@@ -217,7 +217,7 @@ private:
/** Listener for events occuring on a folder.
*/
-class folderListener
+class VMIME_EXPORT folderListener
{
protected:
diff --git a/vmime/net/folder.hpp b/vmime/net/folder.hpp
index 17720466..b34ff812 100644
--- a/vmime/net/folder.hpp
+++ b/vmime/net/folder.hpp
@@ -55,7 +55,7 @@ class store;
/** Abstract representation of a folder in a message store.
*/
-class folder : public object
+class VMIME_EXPORT folder : public object
{
protected:
diff --git a/vmime/net/message.hpp b/vmime/net/message.hpp
index 956a3a28..288e08a2 100644
--- a/vmime/net/message.hpp
+++ b/vmime/net/message.hpp
@@ -50,7 +50,7 @@ class structure;
/** A MIME part in a message.
*/
-class part : public object
+class VMIME_EXPORT part : public object
{
protected:
@@ -126,7 +126,7 @@ public:
/** Structure of a MIME part/message.
*/
-class structure : public object
+class VMIME_EXPORT structure : public object
{
protected:
@@ -164,7 +164,7 @@ public:
/** Abstract representation of a message in a store/transport service.
*/
-class message : public object
+class VMIME_EXPORT message : public object
{
protected:
diff --git a/vmime/net/securedConnectionInfos.hpp b/vmime/net/securedConnectionInfos.hpp
index 2c661146..8ed8b138 100644
--- a/vmime/net/securedConnectionInfos.hpp
+++ b/vmime/net/securedConnectionInfos.hpp
@@ -40,7 +40,7 @@ namespace net {
/** Information about the secured connection used by a service.
*/
-class securedConnectionInfos : public connectionInfos
+class VMIME_EXPORT securedConnectionInfos : public connectionInfos
{
};
diff --git a/vmime/net/service.hpp b/vmime/net/service.hpp
index 451ec433..57b2c3a0 100644
--- a/vmime/net/service.hpp
+++ b/vmime/net/service.hpp
@@ -55,7 +55,7 @@ namespace net {
/** Base class for messaging services.
*/
-class service : public object
+class VMIME_EXPORT service : public object
{
protected:
diff --git a/vmime/net/serviceFactory.hpp b/vmime/net/serviceFactory.hpp
index 3020ba02..c2df141b 100644
--- a/vmime/net/serviceFactory.hpp
+++ b/vmime/net/serviceFactory.hpp
@@ -58,7 +58,7 @@ class session;
/** A factory to create 'service' objects for a specified protocol.
*/
-class serviceFactory
+class VMIME_EXPORT serviceFactory
{
private:
diff --git a/vmime/net/serviceInfos.hpp b/vmime/net/serviceInfos.hpp
index 58fb8eab..efdc8456 100644
--- a/vmime/net/serviceInfos.hpp
+++ b/vmime/net/serviceInfos.hpp
@@ -45,7 +45,7 @@ namespace net {
/** Stores information about a messaging service.
*/
-class serviceInfos
+class VMIME_EXPORT serviceInfos
{
friend class serviceFactory;
diff --git a/vmime/net/session.hpp b/vmime/net/session.hpp
index 0f572fba..a6c6e775 100644
--- a/vmime/net/session.hpp
+++ b/vmime/net/session.hpp
@@ -50,7 +50,7 @@ class transport;
* for connection to a service.
*/
-class session : public object
+class VMIME_EXPORT session : public object
{
public:
diff --git a/vmime/net/socket.hpp b/vmime/net/socket.hpp
index cfe1fd7a..5662da23 100644
--- a/vmime/net/socket.hpp
+++ b/vmime/net/socket.hpp
@@ -43,7 +43,7 @@ namespace net {
/** Interface for connecting to servers.
*/
-class socket : public object
+class VMIME_EXPORT socket : public object
{
public:
diff --git a/vmime/net/store.hpp b/vmime/net/store.hpp
index 2aea602c..92a43feb 100644
--- a/vmime/net/store.hpp
+++ b/vmime/net/store.hpp
@@ -43,7 +43,7 @@ namespace net {
* Encapsulate protocols that provide access to user's mail drop.
*/
-class store : public service
+class VMIME_EXPORT store : public service
{
protected:
diff --git a/vmime/net/timeoutHandler.hpp b/vmime/net/timeoutHandler.hpp
index e1d8b17b..f49ece0c 100644
--- a/vmime/net/timeoutHandler.hpp
+++ b/vmime/net/timeoutHandler.hpp
@@ -41,7 +41,7 @@ namespace net {
/** A class to manage time-out in messaging services.
*/
-class timeoutHandler : public object
+class VMIME_EXPORT timeoutHandler : public object
{
public:
diff --git a/vmime/net/tls/TLSSecuredConnectionInfos.hpp b/vmime/net/tls/TLSSecuredConnectionInfos.hpp
index 9d4418e3..be0fb41a 100644
--- a/vmime/net/tls/TLSSecuredConnectionInfos.hpp
+++ b/vmime/net/tls/TLSSecuredConnectionInfos.hpp
@@ -47,7 +47,7 @@ class TLSSocket;
/** Information about a TLS-secured connection used by a service.
*/
-class TLSSecuredConnectionInfos : public securedConnectionInfos
+class VMIME_EXPORT TLSSecuredConnectionInfos : public securedConnectionInfos
{
public:
diff --git a/vmime/net/tls/TLSSession.hpp b/vmime/net/tls/TLSSession.hpp
index 1c8f87ef..5cd14435 100644
--- a/vmime/net/tls/TLSSession.hpp
+++ b/vmime/net/tls/TLSSession.hpp
@@ -45,7 +45,7 @@ namespace tls {
/** Describe a TLS connection between a client and a server.
*/
-class TLSSession : public object
+class VMIME_EXPORT TLSSession : public object
{
public:
diff --git a/vmime/net/tls/TLSSocket.hpp b/vmime/net/tls/TLSSocket.hpp
index 0cab8b71..68ed1963 100644
--- a/vmime/net/tls/TLSSocket.hpp
+++ b/vmime/net/tls/TLSSocket.hpp
@@ -49,7 +49,7 @@ class TLSSession;
/** Add a TLS security layer to an existing socket.
*/
-class TLSSocket : public socket
+class VMIME_EXPORT TLSSocket : public socket
{
public:
diff --git a/vmime/net/transport.hpp b/vmime/net/transport.hpp
index cadde20f..5d599379 100644
--- a/vmime/net/transport.hpp
+++ b/vmime/net/transport.hpp
@@ -52,7 +52,7 @@ namespace net {
* Encapsulate protocols that can send messages.
*/
-class transport : public service
+class VMIME_EXPORT transport : public service
{
protected:
diff --git a/vmime/object.hpp b/vmime/object.hpp
index f86e7420..192ab050 100644
--- a/vmime/object.hpp
+++ b/vmime/object.hpp
@@ -39,7 +39,7 @@ namespace vmime
* reference counting and auto-deletion.
*/
-class object
+class VMIME_EXPORT object
{
template <class T> friend class utility::ref;
template <class T> friend class utility::weak_ref;
diff --git a/vmime/parameter.hpp b/vmime/parameter.hpp
index 82314575..a3d0f0f8 100644
--- a/vmime/parameter.hpp
+++ b/vmime/parameter.hpp
@@ -34,7 +34,7 @@ namespace vmime
{
-class parameter : public component
+class VMIME_EXPORT parameter : public component
{
friend class parameterizedHeaderField;
diff --git a/vmime/parameterizedHeaderField.hpp b/vmime/parameterizedHeaderField.hpp
index ee54d0a2..1a80073e 100644
--- a/vmime/parameterizedHeaderField.hpp
+++ b/vmime/parameterizedHeaderField.hpp
@@ -39,7 +39,7 @@ namespace vmime
* Parameters can be created using vmime::parameterFactory.
*/
-class parameterizedHeaderField : virtual public headerField
+class VMIME_EXPORT parameterizedHeaderField : virtual public headerField
{
friend class vmime::creator; // create ref
diff --git a/vmime/parsedMessageAttachment.hpp b/vmime/parsedMessageAttachment.hpp
index 3f53de43..d37c84a6 100644
--- a/vmime/parsedMessageAttachment.hpp
+++ b/vmime/parsedMessageAttachment.hpp
@@ -37,7 +37,7 @@ namespace vmime
/** A message attachment that can be generated into a message.
*/
-class parsedMessageAttachment : public messageAttachment
+class VMIME_EXPORT parsedMessageAttachment : public messageAttachment
{
public:
diff --git a/vmime/parsingContext.hpp b/vmime/parsingContext.hpp
index 0ca194c5..27d14a60 100644
--- a/vmime/parsingContext.hpp
+++ b/vmime/parsingContext.hpp
@@ -35,7 +35,7 @@ namespace vmime
/** Holds configuration parameters used for parsing messages.
*/
-class parsingContext : public context
+class VMIME_EXPORT parsingContext : public context
{
public:
diff --git a/vmime/path.hpp b/vmime/path.hpp
index d2077857..cb6e4ed4 100644
--- a/vmime/path.hpp
+++ b/vmime/path.hpp
@@ -35,7 +35,7 @@ namespace vmime
/** A path: a local part + '@' + a domain.
*/
-class path : public headerFieldValue
+class VMIME_EXPORT path : public headerFieldValue
{
public:
diff --git a/vmime/plainTextPart.hpp b/vmime/plainTextPart.hpp
index 1eaa42f1..a68b5306 100644
--- a/vmime/plainTextPart.hpp
+++ b/vmime/plainTextPart.hpp
@@ -35,7 +35,7 @@ namespace vmime
/** Text part of type 'text/plain'.
*/
-class plainTextPart : public textPart
+class VMIME_EXPORT plainTextPart : public textPart
{
public:
diff --git a/vmime/platform.hpp b/vmime/platform.hpp
index 1d6c059e..f10e5c9c 100644
--- a/vmime/platform.hpp
+++ b/vmime/platform.hpp
@@ -50,7 +50,7 @@ namespace vmime
/** Allow setting or getting the current platform handler.
*/
-class platform
+class VMIME_EXPORT platform
{
public:
@@ -58,7 +58,7 @@ public:
* access platform-dependent objects: sockets, date/time, file system, etc.
*/
- class handler : public object
+ class VMIME_EXPORT handler : public object
{
public:
diff --git a/vmime/propertySet.hpp b/vmime/propertySet.hpp
index c181cc90..cd84aed5 100644
--- a/vmime/propertySet.hpp
+++ b/vmime/propertySet.hpp
@@ -43,7 +43,7 @@ namespace vmime
/** Manage a list of (name,value) pairs.
*/
-class propertySet : public object
+class VMIME_EXPORT propertySet : public object
{
public:
diff --git a/vmime/relay.hpp b/vmime/relay.hpp
index 20547d98..f778a0bc 100644
--- a/vmime/relay.hpp
+++ b/vmime/relay.hpp
@@ -38,7 +38,7 @@ namespace vmime
/** Trace information about a relay (basic type).
*/
-class relay : public headerFieldValue
+class VMIME_EXPORT relay : public headerFieldValue
{
public:
diff --git a/vmime/security/authenticator.hpp b/vmime/security/authenticator.hpp
index 1a55c768..5efdb321 100644
--- a/vmime/security/authenticator.hpp
+++ b/vmime/security/authenticator.hpp
@@ -60,7 +60,7 @@ namespace security {
* WARNING: an authenticator should be used with one and ONLY ONE messaging
* service at a time.
*/
-class authenticator : public object
+class VMIME_EXPORT authenticator : public object
{
public:
diff --git a/vmime/security/cert/X509Certificate.hpp b/vmime/security/cert/X509Certificate.hpp
index 4b9145f2..20ebfe5a 100644
--- a/vmime/security/cert/X509Certificate.hpp
+++ b/vmime/security/cert/X509Certificate.hpp
@@ -47,7 +47,7 @@ namespace cert {
/** Identity certificate based on X.509 standard.
*/
-class X509Certificate : public certificate
+class VMIME_EXPORT X509Certificate : public certificate
{
public:
diff --git a/vmime/security/cert/certificate.hpp b/vmime/security/cert/certificate.hpp
index 05f10727..e4a57fb4 100644
--- a/vmime/security/cert/certificate.hpp
+++ b/vmime/security/cert/certificate.hpp
@@ -35,7 +35,7 @@ namespace cert {
/** Identity certificate for a peer.
*/
-class certificate : public object
+class VMIME_EXPORT certificate : public object
{
public:
diff --git a/vmime/security/cert/certificateChain.hpp b/vmime/security/cert/certificateChain.hpp
index 84b1047d..8daa4cb5 100644
--- a/vmime/security/cert/certificateChain.hpp
+++ b/vmime/security/cert/certificateChain.hpp
@@ -38,7 +38,7 @@ namespace cert {
/** An ordered list of certificates, from the subject certificate to
* the issuer certificate.
*/
-class certificateChain : public object
+class VMIME_EXPORT certificateChain : public object
{
public:
diff --git a/vmime/security/cert/certificateVerifier.hpp b/vmime/security/cert/certificateVerifier.hpp
index 09054f85..e975ae04 100644
--- a/vmime/security/cert/certificateVerifier.hpp
+++ b/vmime/security/cert/certificateVerifier.hpp
@@ -37,7 +37,7 @@ namespace cert {
/** Verify that a certificate path issued by a server can be trusted.
*/
-class certificateVerifier : public object
+class VMIME_EXPORT certificateVerifier : public object
{
public:
diff --git a/vmime/security/cert/defaultCertificateVerifier.hpp b/vmime/security/cert/defaultCertificateVerifier.hpp
index 9596b236..31bf71e5 100644
--- a/vmime/security/cert/defaultCertificateVerifier.hpp
+++ b/vmime/security/cert/defaultCertificateVerifier.hpp
@@ -38,7 +38,7 @@ class X509Certificate;
/** Default implementation for certificate verification.
*/
-class defaultCertificateVerifier : public certificateVerifier
+class VMIME_EXPORT defaultCertificateVerifier : public certificateVerifier
{
private:
diff --git a/vmime/security/defaultAuthenticator.hpp b/vmime/security/defaultAuthenticator.hpp
index 85100cb9..780dc310 100644
--- a/vmime/security/defaultAuthenticator.hpp
+++ b/vmime/security/defaultAuthenticator.hpp
@@ -41,7 +41,7 @@ namespace security {
/** An authenticator that can provide some basic information by
* reading in the messaging session properties.
*/
-class defaultAuthenticator : public authenticator
+class VMIME_EXPORT defaultAuthenticator : public authenticator
{
public:
diff --git a/vmime/security/digest/messageDigest.hpp b/vmime/security/digest/messageDigest.hpp
index d4d5ee3a..512b68aa 100644
--- a/vmime/security/digest/messageDigest.hpp
+++ b/vmime/security/digest/messageDigest.hpp
@@ -38,7 +38,7 @@ namespace digest {
* such as MD5 or SHA.
*/
-class messageDigest : public object
+class VMIME_EXPORT messageDigest : public object
{
public:
diff --git a/vmime/security/digest/messageDigestFactory.hpp b/vmime/security/digest/messageDigestFactory.hpp
index d0c5f550..9c743827 100644
--- a/vmime/security/digest/messageDigestFactory.hpp
+++ b/vmime/security/digest/messageDigestFactory.hpp
@@ -38,7 +38,7 @@ namespace digest {
/** Creates instances of message digest algorithms.
*/
-class messageDigestFactory
+class VMIME_EXPORT messageDigestFactory
{
private:
diff --git a/vmime/security/sasl/SASLAuthenticator.hpp b/vmime/security/sasl/SASLAuthenticator.hpp
index 35cd6400..56588fc8 100644
--- a/vmime/security/sasl/SASLAuthenticator.hpp
+++ b/vmime/security/sasl/SASLAuthenticator.hpp
@@ -50,7 +50,7 @@ class SASLSession;
* Usually, you should not inherit from this class, but instead from the
* more convenient defaultSASLAuthenticator class.
*/
-class SASLAuthenticator : public authenticator
+class VMIME_EXPORT SASLAuthenticator : public authenticator
{
public:
diff --git a/vmime/security/sasl/SASLContext.hpp b/vmime/security/sasl/SASLContext.hpp
index 41440b5d..8f6e177c 100644
--- a/vmime/security/sasl/SASLContext.hpp
+++ b/vmime/security/sasl/SASLContext.hpp
@@ -44,7 +44,7 @@ namespace sasl {
/** An SASL client context.
*/
-class SASLContext : public object
+class VMIME_EXPORT SASLContext : public object
{
friend class SASLSession;
friend class builtinSASLMechanism;
diff --git a/vmime/security/sasl/SASLMechanism.hpp b/vmime/security/sasl/SASLMechanism.hpp
index b78fa1b9..56566a42 100644
--- a/vmime/security/sasl/SASLMechanism.hpp
+++ b/vmime/security/sasl/SASLMechanism.hpp
@@ -44,7 +44,7 @@ class SASLSession;
/** An SASL mechanism.
*/
-class SASLMechanism : public object
+class VMIME_EXPORT SASLMechanism : public object
{
public:
diff --git a/vmime/security/sasl/SASLMechanismFactory.hpp b/vmime/security/sasl/SASLMechanismFactory.hpp
index 988a41d4..920b78fc 100644
--- a/vmime/security/sasl/SASLMechanismFactory.hpp
+++ b/vmime/security/sasl/SASLMechanismFactory.hpp
@@ -49,7 +49,7 @@ class SASLContext;
/** Constructs SASL mechanism objects.
*/
-class SASLMechanismFactory : public object
+class VMIME_EXPORT SASLMechanismFactory : public object
{
private:
diff --git a/vmime/security/sasl/SASLSession.hpp b/vmime/security/sasl/SASLSession.hpp
index c3840096..a196e06d 100644
--- a/vmime/security/sasl/SASLSession.hpp
+++ b/vmime/security/sasl/SASLSession.hpp
@@ -48,7 +48,7 @@ class SASLContext;
/** An SASL client session.
*/
-class SASLSession : public object
+class VMIME_EXPORT SASLSession : public object
{
friend class builtinSASLMechanism;
friend class SASLSocket;
diff --git a/vmime/security/sasl/SASLSocket.hpp b/vmime/security/sasl/SASLSocket.hpp
index 7e442da9..3c1cf12c 100644
--- a/vmime/security/sasl/SASLSocket.hpp
+++ b/vmime/security/sasl/SASLSocket.hpp
@@ -46,7 +46,7 @@ class SASLSession;
/** A socket which provides data integrity and/or privacy protection.
*/
-class SASLSocket : public net::socket
+class VMIME_EXPORT SASLSocket : public net::socket
{
public:
diff --git a/vmime/security/sasl/builtinSASLMechanism.hpp b/vmime/security/sasl/builtinSASLMechanism.hpp
index 7b77b51b..3507dc45 100644
--- a/vmime/security/sasl/builtinSASLMechanism.hpp
+++ b/vmime/security/sasl/builtinSASLMechanism.hpp
@@ -45,7 +45,7 @@ class SASLContext;
/** A built-in authentication mechanism that relies on
* the GNU SASL library.
*/
-class builtinSASLMechanism : public SASLMechanism
+class VMIME_EXPORT builtinSASLMechanism : public SASLMechanism
{
public:
diff --git a/vmime/security/sasl/defaultSASLAuthenticator.hpp b/vmime/security/sasl/defaultSASLAuthenticator.hpp
index 7cd7e2d4..68ae7946 100644
--- a/vmime/security/sasl/defaultSASLAuthenticator.hpp
+++ b/vmime/security/sasl/defaultSASLAuthenticator.hpp
@@ -43,7 +43,7 @@ namespace sasl {
/** An authenticator that is capable of providing information
* for simple authentication mechanisms (username and password).
*/
-class defaultSASLAuthenticator : public SASLAuthenticator
+class VMIME_EXPORT defaultSASLAuthenticator : public SASLAuthenticator
{
public:
diff --git a/vmime/streamContentHandler.hpp b/vmime/streamContentHandler.hpp
index 732f4100..eb20a0a3 100644
--- a/vmime/streamContentHandler.hpp
+++ b/vmime/streamContentHandler.hpp
@@ -32,7 +32,7 @@ namespace vmime
{
-class streamContentHandler : public contentHandler
+class VMIME_EXPORT streamContentHandler : public contentHandler
{
public:
diff --git a/vmime/stringContentHandler.hpp b/vmime/stringContentHandler.hpp
index 9f705a49..1ab63fcf 100644
--- a/vmime/stringContentHandler.hpp
+++ b/vmime/stringContentHandler.hpp
@@ -32,7 +32,7 @@ namespace vmime
{
-class stringContentHandler : public contentHandler
+class VMIME_EXPORT stringContentHandler : public contentHandler
{
public:
diff --git a/vmime/text.hpp b/vmime/text.hpp
index 83281200..99452e5a 100644
--- a/vmime/text.hpp
+++ b/vmime/text.hpp
@@ -37,7 +37,7 @@ namespace vmime
/** List of encoded-words, as defined in RFC-2047 (basic type).
*/
-class text : public headerFieldValue
+class VMIME_EXPORT text : public headerFieldValue
{
public:
diff --git a/vmime/textPart.hpp b/vmime/textPart.hpp
index 9b419b61..0548de3f 100644
--- a/vmime/textPart.hpp
+++ b/vmime/textPart.hpp
@@ -39,7 +39,7 @@ namespace vmime
/** Generic text part.
*/
-class textPart : public object
+class VMIME_EXPORT textPart : public object
{
friend class textPartFactory;
friend class messageBuilder; // for generateIn, getPartCount
diff --git a/vmime/textPartFactory.hpp b/vmime/textPartFactory.hpp
index 03b1a1ac..4112f1ba 100644
--- a/vmime/textPartFactory.hpp
+++ b/vmime/textPartFactory.hpp
@@ -33,7 +33,7 @@ namespace vmime
{
-class textPartFactory
+class VMIME_EXPORT textPartFactory
{
protected:
diff --git a/vmime/utility/childProcess.hpp b/vmime/utility/childProcess.hpp
index bdf67b5a..637240c1 100644
--- a/vmime/utility/childProcess.hpp
+++ b/vmime/utility/childProcess.hpp
@@ -39,7 +39,7 @@ namespace utility {
* and/or standard output.
*/
-class childProcess : public object
+class VMIME_EXPORT childProcess : public object
{
public:
diff --git a/vmime/utility/datetimeUtils.hpp b/vmime/utility/datetimeUtils.hpp
index 57de1f30..a7291bb8 100644
--- a/vmime/utility/datetimeUtils.hpp
+++ b/vmime/utility/datetimeUtils.hpp
@@ -35,7 +35,7 @@ namespace utility {
/** Miscellaneous functions related to date/time.
*/
-class datetimeUtils
+class VMIME_EXPORT datetimeUtils
{
public:
diff --git a/vmime/utility/encoder/encoder.hpp b/vmime/utility/encoder/encoder.hpp
index dab237a7..9b6bbbe0 100644
--- a/vmime/utility/encoder/encoder.hpp
+++ b/vmime/utility/encoder/encoder.hpp
@@ -39,7 +39,7 @@ namespace encoder {
/** Encode/decode data in different encodings.
*/
-class encoder : public object
+class VMIME_EXPORT encoder : public object
{
public:
diff --git a/vmime/utility/file.hpp b/vmime/utility/file.hpp
index 94213b97..df7962e9 100644
--- a/vmime/utility/file.hpp
+++ b/vmime/utility/file.hpp
@@ -44,7 +44,7 @@ class file;
/** File list iterator (see file::getFiles).
*/
-class fileIterator : public object
+class VMIME_EXPORT fileIterator : public object
{
public:
@@ -68,7 +68,7 @@ public:
/** Write to a file.
*/
-class fileWriter : public object
+class VMIME_EXPORT fileWriter : public object
{
public:
@@ -81,7 +81,7 @@ public:
/** Read from a file.
*/
-class fileReader : public object
+class VMIME_EXPORT fileReader : public object
{
public:
@@ -94,7 +94,7 @@ public:
/** Abstract representation of a file or directory.
*/
-class file : public object
+class VMIME_EXPORT file : public object
{
public:
@@ -214,7 +214,7 @@ private:
/** Constructs 'file' objects.
*/
-class fileSystemFactory : public object
+class VMIME_EXPORT fileSystemFactory : public object
{
public:
diff --git a/vmime/utility/filteredStream.hpp b/vmime/utility/filteredStream.hpp
index 9dc24e5d..0cb7a0ef 100644
--- a/vmime/utility/filteredStream.hpp
+++ b/vmime/utility/filteredStream.hpp
@@ -38,7 +38,7 @@ namespace utility {
/** A stream whose input is filtered.
*/
-class filteredInputStream : public inputStream
+class VMIME_EXPORT filteredInputStream : public inputStream
{
public:
@@ -55,7 +55,7 @@ public:
/** A stream whose output is filtered.
*/
-class filteredOutputStream : public outputStream
+class VMIME_EXPORT filteredOutputStream : public outputStream
{
public:
@@ -73,7 +73,7 @@ public:
* sequences with "\n." sequences.
*/
-class dotFilteredInputStream : public filteredInputStream
+class VMIME_EXPORT dotFilteredInputStream : public filteredInputStream
{
public:
@@ -106,7 +106,7 @@ private:
* sequences with "\n.." sequences.
*/
-class dotFilteredOutputStream : public filteredOutputStream
+class VMIME_EXPORT dotFilteredOutputStream : public filteredOutputStream
{
public:
@@ -133,7 +133,7 @@ private:
* with single LF characters.
*/
-class CRLFToLFFilteredOutputStream : public filteredOutputStream
+class VMIME_EXPORT CRLFToLFFilteredOutputStream : public filteredOutputStream
{
public:
@@ -159,7 +159,7 @@ private:
* with CRLF sequences.
*/
-class LFToCRLFFilteredOutputStream : public filteredOutputStream
+class VMIME_EXPORT LFToCRLFFilteredOutputStream : public filteredOutputStream
{
public:
@@ -186,7 +186,7 @@ private:
*/
template <int COUNT>
-class stopSequenceFilteredInputStream : public filteredInputStream
+class VMIME_EXPORT stopSequenceFilteredInputStream : public filteredInputStream
{
public:
diff --git a/vmime/utility/inputStream.hpp b/vmime/utility/inputStream.hpp
index da8f8755..2503663c 100644
--- a/vmime/utility/inputStream.hpp
+++ b/vmime/utility/inputStream.hpp
@@ -35,7 +35,7 @@ namespace utility {
/** Simple input stream.
*/
-class inputStream : public stream
+class VMIME_EXPORT inputStream : public stream
{
public:
diff --git a/vmime/utility/inputStreamAdapter.hpp b/vmime/utility/inputStreamAdapter.hpp
index 4926d44a..155debc2 100644
--- a/vmime/utility/inputStreamAdapter.hpp
+++ b/vmime/utility/inputStreamAdapter.hpp
@@ -37,7 +37,7 @@ namespace utility {
/** An adapter class for C++ standard input streams.
*/
-class inputStreamAdapter : public seekableInputStream
+class VMIME_EXPORT inputStreamAdapter : public seekableInputStream
{
public:
diff --git a/vmime/utility/inputStreamByteBufferAdapter.hpp b/vmime/utility/inputStreamByteBufferAdapter.hpp
index 7f9b6c8d..4a6247f7 100644
--- a/vmime/utility/inputStreamByteBufferAdapter.hpp
+++ b/vmime/utility/inputStreamByteBufferAdapter.hpp
@@ -35,7 +35,7 @@ namespace utility {
/** An adapter class for reading from an array of bytes.
*/
-class inputStreamByteBufferAdapter : public seekableInputStream
+class VMIME_EXPORT inputStreamByteBufferAdapter : public seekableInputStream
{
public:
diff --git a/vmime/utility/inputStreamPointerAdapter.hpp b/vmime/utility/inputStreamPointerAdapter.hpp
index b1dea5f0..4fc606a9 100644
--- a/vmime/utility/inputStreamPointerAdapter.hpp
+++ b/vmime/utility/inputStreamPointerAdapter.hpp
@@ -37,7 +37,7 @@ namespace utility {
/** An adapter class for pointer to C++ standard input stream.
*/
-class inputStreamPointerAdapter : public inputStreamAdapter
+class VMIME_EXPORT inputStreamPointerAdapter : public inputStreamAdapter
{
public:
diff --git a/vmime/utility/inputStreamSocketAdapter.hpp b/vmime/utility/inputStreamSocketAdapter.hpp
index 68bcbee2..8d23694d 100644
--- a/vmime/utility/inputStreamSocketAdapter.hpp
+++ b/vmime/utility/inputStreamSocketAdapter.hpp
@@ -45,7 +45,7 @@ namespace utility {
/** An input stream that is connected to a socket.
*/
-class inputStreamSocketAdapter : public inputStream
+class VMIME_EXPORT inputStreamSocketAdapter : public inputStream
{
public:
diff --git a/vmime/utility/inputStreamStringAdapter.hpp b/vmime/utility/inputStreamStringAdapter.hpp
index 94a5af17..605dd34e 100644
--- a/vmime/utility/inputStreamStringAdapter.hpp
+++ b/vmime/utility/inputStreamStringAdapter.hpp
@@ -35,7 +35,7 @@ namespace utility {
/** An adapter class for string input.
*/
-class inputStreamStringAdapter : public seekableInputStream
+class VMIME_EXPORT inputStreamStringAdapter : public seekableInputStream
{
public:
diff --git a/vmime/utility/inputStreamStringProxyAdapter.hpp b/vmime/utility/inputStreamStringProxyAdapter.hpp
index 1279f7e6..725712a3 100644
--- a/vmime/utility/inputStreamStringProxyAdapter.hpp
+++ b/vmime/utility/inputStreamStringProxyAdapter.hpp
@@ -38,7 +38,7 @@ class stringProxy;
/** An adapter class for stringProxy input.
*/
-class inputStreamStringProxyAdapter : public seekableInputStream
+class VMIME_EXPORT inputStreamStringProxyAdapter : public seekableInputStream
{
public:
diff --git a/vmime/utility/outputStream.hpp b/vmime/utility/outputStream.hpp
index d93219fe..9d8adb60 100644
--- a/vmime/utility/outputStream.hpp
+++ b/vmime/utility/outputStream.hpp
@@ -40,7 +40,7 @@ namespace utility {
/** Simple output stream.
*/
-class outputStream : public stream
+class VMIME_EXPORT outputStream : public stream
{
public:
diff --git a/vmime/utility/outputStreamAdapter.hpp b/vmime/utility/outputStreamAdapter.hpp
index 086ac647..3228db7f 100644
--- a/vmime/utility/outputStreamAdapter.hpp
+++ b/vmime/utility/outputStreamAdapter.hpp
@@ -37,7 +37,7 @@ namespace utility {
/** An adapter class for C++ standard output streams.
*/
-class outputStreamAdapter : public outputStream
+class VMIME_EXPORT outputStreamAdapter : public outputStream
{
public:
diff --git a/vmime/utility/outputStreamByteArrayAdapter.hpp b/vmime/utility/outputStreamByteArrayAdapter.hpp
index b6586012..ce9cf82a 100644
--- a/vmime/utility/outputStreamByteArrayAdapter.hpp
+++ b/vmime/utility/outputStreamByteArrayAdapter.hpp
@@ -35,7 +35,7 @@ namespace utility {
/** An adapter class for byte array output.
*/
-class outputStreamByteArrayAdapter : public outputStream
+class VMIME_EXPORT outputStreamByteArrayAdapter : public outputStream
{
public:
diff --git a/vmime/utility/outputStreamSocketAdapter.hpp b/vmime/utility/outputStreamSocketAdapter.hpp
index 9cd32aba..e80be6a3 100644
--- a/vmime/utility/outputStreamSocketAdapter.hpp
+++ b/vmime/utility/outputStreamSocketAdapter.hpp
@@ -45,7 +45,7 @@ namespace utility {
/** An output stream that is connected to a socket.
*/
-class outputStreamSocketAdapter : public outputStream
+class VMIME_EXPORT outputStreamSocketAdapter : public outputStream
{
public:
diff --git a/vmime/utility/outputStreamStringAdapter.hpp b/vmime/utility/outputStreamStringAdapter.hpp
index 7e5564bc..689e4307 100644
--- a/vmime/utility/outputStreamStringAdapter.hpp
+++ b/vmime/utility/outputStreamStringAdapter.hpp
@@ -35,7 +35,7 @@ namespace utility {
/** An adapter class for string output.
*/
-class outputStreamStringAdapter : public outputStream
+class VMIME_EXPORT outputStreamStringAdapter : public outputStream
{
public:
diff --git a/vmime/utility/parserInputStreamAdapter.hpp b/vmime/utility/parserInputStreamAdapter.hpp
index 7c95d05e..3b323658 100644
--- a/vmime/utility/parserInputStreamAdapter.hpp
+++ b/vmime/utility/parserInputStreamAdapter.hpp
@@ -37,7 +37,7 @@ namespace utility {
/** An adapter class used for parsing from an input stream.
*/
-class parserInputStreamAdapter : public seekableInputStream
+class VMIME_EXPORT parserInputStreamAdapter : public seekableInputStream
{
public:
diff --git a/vmime/utility/path.hpp b/vmime/utility/path.hpp
index 5eb1699d..203da246 100644
--- a/vmime/utility/path.hpp
+++ b/vmime/utility/path.hpp
@@ -38,7 +38,7 @@ namespace utility {
/** Abstract representation of a path (filesystem, mailbox, etc).
*/
-class path : public object
+class VMIME_EXPORT path : public object
{
public:
diff --git a/vmime/utility/progressListener.hpp b/vmime/utility/progressListener.hpp
index 969a2bb6..54ab9683 100644
--- a/vmime/utility/progressListener.hpp
+++ b/vmime/utility/progressListener.hpp
@@ -25,6 +25,9 @@
#define VMIME_UTILITY_PROGRESSLISTENER_HPP_INCLUDED
+#include "vmime/config.hpp"
+
+
namespace vmime {
namespace utility {
@@ -33,7 +36,7 @@ namespace utility {
* of a state of progress by some objects.
*/
-class progressListener
+class VMIME_EXPORT progressListener
{
protected:
diff --git a/vmime/utility/seekableInputStream.hpp b/vmime/utility/seekableInputStream.hpp
index cd30a65c..f861fb0f 100644
--- a/vmime/utility/seekableInputStream.hpp
+++ b/vmime/utility/seekableInputStream.hpp
@@ -35,7 +35,7 @@ namespace utility {
/** An input stream that allows seeking within the input.
*/
-class seekableInputStream : public inputStream
+class VMIME_EXPORT seekableInputStream : public inputStream
{
public:
diff --git a/vmime/utility/seekableInputStreamRegionAdapter.hpp b/vmime/utility/seekableInputStreamRegionAdapter.hpp
index 8b9e1735..8947dfc8 100644
--- a/vmime/utility/seekableInputStreamRegionAdapter.hpp
+++ b/vmime/utility/seekableInputStreamRegionAdapter.hpp
@@ -35,7 +35,7 @@ namespace utility {
/** An adapter for reading a limited region of a seekable input stream.
*/
-class seekableInputStreamRegionAdapter : public seekableInputStream
+class VMIME_EXPORT seekableInputStreamRegionAdapter : public seekableInputStream
{
public:
diff --git a/vmime/utility/smartPtr.hpp b/vmime/utility/smartPtr.hpp
index 5a81afa1..791dbc7f 100644
--- a/vmime/utility/smartPtr.hpp
+++ b/vmime/utility/smartPtr.hpp
@@ -27,6 +27,8 @@
#include <map>
+#include "vmime/config.hpp"
+
// Forward reference to 'object'
namespace vmime { class object; }
@@ -40,7 +42,7 @@ namespace utility {
*/
template <class T>
-class auto_ptr
+class VMIME_EXPORT auto_ptr
{
private:
@@ -61,7 +63,7 @@ public:
/** Manage the life cycle of an object.
*/
-class refManager
+class VMIME_EXPORT refManager
{
protected:
@@ -124,7 +126,7 @@ protected:
/** Null reference.
*/
-class null_ref
+class VMIME_EXPORT null_ref
{
};
@@ -137,7 +139,7 @@ class weak_ref;
*/
template <class T>
-class ref
+class VMIME_EXPORT ref
{
public:
@@ -426,7 +428,7 @@ bool operator!=(const null_ref&, const ref <T>& r)
*/
template <class T>
-class weak_ref
+class VMIME_EXPORT weak_ref
{
public:
diff --git a/vmime/utility/stream.hpp b/vmime/utility/stream.hpp
index 9842e317..84a34f59 100644
--- a/vmime/utility/stream.hpp
+++ b/vmime/utility/stream.hpp
@@ -40,7 +40,7 @@ namespace utility {
/** Base class for input/output stream.
*/
-class stream : public object, private noncopyable
+class VMIME_EXPORT stream : public object, private noncopyable
{
public:
diff --git a/vmime/utility/stringProxy.hpp b/vmime/utility/stringProxy.hpp
index 0e8c53f9..8575274c 100644
--- a/vmime/utility/stringProxy.hpp
+++ b/vmime/utility/stringProxy.hpp
@@ -42,7 +42,7 @@ namespace utility {
* be used in "std::string" implementation.
*/
-class stringProxy
+class VMIME_EXPORT stringProxy
{
public:
diff --git a/vmime/utility/stringUtils.hpp b/vmime/utility/stringUtils.hpp
index 7fcdc622..e5809ed2 100644
--- a/vmime/utility/stringUtils.hpp
+++ b/vmime/utility/stringUtils.hpp
@@ -38,7 +38,7 @@ namespace utility {
/** Miscellaneous functions related to strings.
*/
-class stringUtils
+class VMIME_EXPORT stringUtils
{
public:
diff --git a/vmime/utility/sync/autoLock.hpp b/vmime/utility/sync/autoLock.hpp
index d23ab3c9..3f1231b7 100644
--- a/vmime/utility/sync/autoLock.hpp
+++ b/vmime/utility/sync/autoLock.hpp
@@ -37,7 +37,7 @@ namespace sync {
*/
template <class M>
-class autoLock : public object
+class VMIME_EXPORT autoLock : public object
{
public:
diff --git a/vmime/utility/sync/criticalSection.hpp b/vmime/utility/sync/criticalSection.hpp
index b73f0543..9703d73c 100644
--- a/vmime/utility/sync/criticalSection.hpp
+++ b/vmime/utility/sync/criticalSection.hpp
@@ -36,7 +36,7 @@ namespace sync {
/** Critical section class.
*/
-class criticalSection : public object
+class VMIME_EXPORT criticalSection : public object
{
public:
diff --git a/vmime/utility/url.hpp b/vmime/utility/url.hpp
index b4e8be67..825d2a32 100644
--- a/vmime/utility/url.hpp
+++ b/vmime/utility/url.hpp
@@ -38,7 +38,7 @@ namespace utility {
* to a "resource" on the World Wide Web).
*/
-class url
+class VMIME_EXPORT url
{
public:
diff --git a/vmime/utility/urlUtils.hpp b/vmime/utility/urlUtils.hpp
index 27350194..c21e7aa4 100644
--- a/vmime/utility/urlUtils.hpp
+++ b/vmime/utility/urlUtils.hpp
@@ -36,7 +36,7 @@ namespace utility {
/** Miscellaneous functions related to URLs.
*/
-class urlUtils
+class VMIME_EXPORT urlUtils
{
public:
diff --git a/vmime/word.hpp b/vmime/word.hpp
index 2622f322..d460ccad 100644
--- a/vmime/word.hpp
+++ b/vmime/word.hpp
@@ -38,7 +38,7 @@ namespace vmime
* some text encoded into one specified charset.
*/
-class word : public headerFieldValue
+class VMIME_EXPORT word : public headerFieldValue
{
friend class text;
diff --git a/vmime/wordEncoder.hpp b/vmime/wordEncoder.hpp
index acaef791..b2003ac7 100644
--- a/vmime/wordEncoder.hpp
+++ b/vmime/wordEncoder.hpp
@@ -44,7 +44,7 @@ class encoder;
/** Encodes words following RFC-2047.
*/
-class wordEncoder
+class VMIME_EXPORT wordEncoder
{
public: