From 69d552a87bd717f81a1d834f972a0ea0c4dd758b Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Sun, 12 May 2013 16:51:40 +0200 Subject: [PATCH] Export class and functions in shared libraries. --- .gitignore | 1 + CMakeLists.txt | 14 ++- cmake/config.hpp.cmake | 3 + vmime/address.hpp | 2 +- vmime/addressList.hpp | 2 +- vmime/attachment.hpp | 2 +- vmime/attachmentHelper.hpp | 2 +- vmime/body.hpp | 2 +- vmime/bodyPart.hpp | 2 +- vmime/bodyPartAttachment.hpp | 2 +- vmime/charset.hpp | 2 +- vmime/charsetConverter.hpp | 4 +- vmime/charsetConverterOptions.hpp | 2 +- vmime/component.hpp | 2 +- vmime/contentDisposition.hpp | 2 +- vmime/contentDispositionField.hpp | 2 +- vmime/contentHandler.hpp | 2 +- vmime/contentTypeField.hpp | 2 +- vmime/context.hpp | 2 +- vmime/dateTime.hpp | 2 +- vmime/defaultAttachment.hpp | 2 +- vmime/disposition.hpp | 2 +- vmime/emailAddress.hpp | 2 +- vmime/emptyContentHandler.hpp | 2 +- vmime/encoding.hpp | 2 +- vmime/exception.hpp | 108 +++++++++--------- vmime/fileAttachment.hpp | 2 +- vmime/generatedMessageAttachment.hpp | 2 +- vmime/generationContext.hpp | 2 +- vmime/header.hpp | 2 +- vmime/headerField.hpp | 2 +- vmime/headerFieldFactory.hpp | 2 +- vmime/headerFieldValue.hpp | 2 +- vmime/htmlTextPart.hpp | 2 +- vmime/mailbox.hpp | 2 +- vmime/mailboxField.hpp | 2 +- vmime/mailboxGroup.hpp | 2 +- vmime/mailboxList.hpp | 2 +- vmime/mdn/MDNHelper.hpp | 2 +- vmime/mdn/MDNInfos.hpp | 2 +- vmime/mdn/receivedMDNInfos.hpp | 2 +- vmime/mdn/sendableMDNInfos.hpp | 2 +- vmime/mediaType.hpp | 2 +- vmime/message.hpp | 2 +- vmime/messageAttachment.hpp | 2 +- vmime/messageBuilder.hpp | 2 +- vmime/messageId.hpp | 2 +- vmime/messageIdSequence.hpp | 2 +- vmime/messageParser.hpp | 2 +- vmime/misc/importanceHelper.hpp | 2 +- vmime/net/connectionInfos.hpp | 2 +- vmime/net/defaultConnectionInfos.hpp | 2 +- vmime/net/events.hpp | 12 +- vmime/net/folder.hpp | 2 +- vmime/net/message.hpp | 6 +- vmime/net/securedConnectionInfos.hpp | 2 +- vmime/net/service.hpp | 2 +- vmime/net/serviceFactory.hpp | 2 +- vmime/net/serviceInfos.hpp | 2 +- vmime/net/session.hpp | 2 +- vmime/net/socket.hpp | 2 +- vmime/net/store.hpp | 2 +- vmime/net/timeoutHandler.hpp | 2 +- vmime/net/tls/TLSSecuredConnectionInfos.hpp | 2 +- vmime/net/tls/TLSSession.hpp | 2 +- vmime/net/tls/TLSSocket.hpp | 2 +- vmime/net/transport.hpp | 2 +- vmime/object.hpp | 2 +- vmime/parameter.hpp | 2 +- vmime/parameterizedHeaderField.hpp | 2 +- vmime/parsedMessageAttachment.hpp | 2 +- vmime/parsingContext.hpp | 2 +- vmime/path.hpp | 2 +- vmime/plainTextPart.hpp | 2 +- vmime/platform.hpp | 4 +- vmime/propertySet.hpp | 2 +- vmime/relay.hpp | 2 +- vmime/security/authenticator.hpp | 2 +- vmime/security/cert/X509Certificate.hpp | 2 +- vmime/security/cert/certificate.hpp | 2 +- vmime/security/cert/certificateChain.hpp | 2 +- vmime/security/cert/certificateVerifier.hpp | 2 +- .../cert/defaultCertificateVerifier.hpp | 2 +- vmime/security/defaultAuthenticator.hpp | 2 +- vmime/security/digest/messageDigest.hpp | 2 +- .../security/digest/messageDigestFactory.hpp | 2 +- vmime/security/sasl/SASLAuthenticator.hpp | 2 +- vmime/security/sasl/SASLContext.hpp | 2 +- vmime/security/sasl/SASLMechanism.hpp | 2 +- vmime/security/sasl/SASLMechanismFactory.hpp | 2 +- vmime/security/sasl/SASLSession.hpp | 2 +- vmime/security/sasl/SASLSocket.hpp | 2 +- vmime/security/sasl/builtinSASLMechanism.hpp | 2 +- .../sasl/defaultSASLAuthenticator.hpp | 2 +- vmime/streamContentHandler.hpp | 2 +- vmime/stringContentHandler.hpp | 2 +- vmime/text.hpp | 2 +- vmime/textPart.hpp | 2 +- vmime/textPartFactory.hpp | 2 +- vmime/utility/childProcess.hpp | 2 +- vmime/utility/datetimeUtils.hpp | 2 +- vmime/utility/encoder/encoder.hpp | 2 +- vmime/utility/file.hpp | 10 +- vmime/utility/filteredStream.hpp | 14 +-- vmime/utility/inputStream.hpp | 2 +- vmime/utility/inputStreamAdapter.hpp | 2 +- .../utility/inputStreamByteBufferAdapter.hpp | 2 +- vmime/utility/inputStreamPointerAdapter.hpp | 2 +- vmime/utility/inputStreamSocketAdapter.hpp | 2 +- vmime/utility/inputStreamStringAdapter.hpp | 2 +- .../utility/inputStreamStringProxyAdapter.hpp | 2 +- vmime/utility/outputStream.hpp | 2 +- vmime/utility/outputStreamAdapter.hpp | 2 +- .../utility/outputStreamByteArrayAdapter.hpp | 2 +- vmime/utility/outputStreamSocketAdapter.hpp | 2 +- vmime/utility/outputStreamStringAdapter.hpp | 2 +- vmime/utility/parserInputStreamAdapter.hpp | 2 +- vmime/utility/path.hpp | 2 +- vmime/utility/progressListener.hpp | 5 +- vmime/utility/seekableInputStream.hpp | 2 +- .../seekableInputStreamRegionAdapter.hpp | 2 +- vmime/utility/smartPtr.hpp | 12 +- vmime/utility/stream.hpp | 2 +- vmime/utility/stringProxy.hpp | 2 +- vmime/utility/stringUtils.hpp | 2 +- vmime/utility/sync/autoLock.hpp | 2 +- vmime/utility/sync/criticalSection.hpp | 2 +- vmime/utility/url.hpp | 2 +- vmime/utility/urlUtils.hpp | 2 +- vmime/word.hpp | 2 +- vmime/wordEncoder.hpp | 2 +- 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 friend class utility::ref; template 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 -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 +#include "vmime/config.hpp" + // Forward reference to 'object' namespace vmime { class object; } @@ -40,7 +42,7 @@ namespace utility { */ template -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 ref +class VMIME_EXPORT ref { public: @@ -426,7 +428,7 @@ bool operator!=(const null_ref&, const ref & r) */ template -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 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: