diff options
Diffstat (limited to 'src/vmime/net')
102 files changed, 338 insertions, 298 deletions
diff --git a/src/vmime/net/events.cpp b/src/vmime/net/events.cpp index 45f7f98e..6d056ae6 100644 --- a/src/vmime/net/events.cpp +++ b/src/vmime/net/events.cpp @@ -60,7 +60,7 @@ const char* messageCountEvent::EVENT_CLASS = "messageCountEvent"; messageCountEvent::messageCountEvent - (shared_ptr <folder> folder, const Types type, const std::vector <size_t>& nums) + (const shared_ptr <folder>& folder, const Types type, const std::vector <size_t>& nums) : m_folder(folder), m_type(type) { m_nums.resize(nums.size()); @@ -96,7 +96,7 @@ const char* messageChangedEvent::EVENT_CLASS = "messageChangedEvent"; messageChangedEvent::messageChangedEvent - (shared_ptr <folder> folder, const Types type, const std::vector <size_t>& nums) + (const shared_ptr <folder>& folder, const Types type, const std::vector <size_t>& nums) : m_folder(folder), m_type(type) { m_nums.resize(nums.size()); @@ -129,7 +129,7 @@ const char* folderEvent::EVENT_CLASS = "folderEvent"; folderEvent::folderEvent - (shared_ptr <folder> folder, const Types type, + (const shared_ptr <folder>& folder, const Types type, const utility::path& oldPath, const utility::path& newPath) : m_folder(folder), m_type(type), m_oldPath(oldPath), m_newPath(newPath) { diff --git a/src/vmime/net/events.hpp b/src/vmime/net/events.hpp index 60d15bd9..772c4d9d 100644 --- a/src/vmime/net/events.hpp +++ b/src/vmime/net/events.hpp @@ -75,7 +75,7 @@ public: }; - messageCountEvent(shared_ptr <folder> folder, const Types type, const std::vector <size_t>& nums); + messageCountEvent(const shared_ptr <folder>& folder, const Types type, const std::vector <size_t>& nums); /** Return the folder in which messages have been added/removed. * @@ -123,8 +123,8 @@ protected: public: - virtual void messagesAdded(shared_ptr <messageCountEvent> event) = 0; - virtual void messagesRemoved(shared_ptr <messageCountEvent> event) = 0; + virtual void messagesAdded(const shared_ptr <messageCountEvent>& event) = 0; + virtual void messagesRemoved(const shared_ptr <messageCountEvent>& event) = 0; }; @@ -144,7 +144,7 @@ public: }; - messageChangedEvent(shared_ptr <folder> folder, const Types type, const std::vector <size_t>& nums); + messageChangedEvent(const shared_ptr <folder>& folder, const Types type, const std::vector <size_t>& nums); /** Return the folder in which messages have changed. * @@ -192,7 +192,7 @@ protected: public: - virtual void messageChanged(shared_ptr <messageChangedEvent> event) = 0; + virtual void messageChanged(const shared_ptr <messageChangedEvent>& event) = 0; }; @@ -214,7 +214,7 @@ public: }; - folderEvent(shared_ptr <folder> folder, const Types type, const utility::path& oldPath, const utility::path& newPath); + folderEvent(const shared_ptr <folder>& folder, const Types type, const utility::path& oldPath, const utility::path& newPath); /** Return the folder on which the event occurred. * @@ -257,9 +257,9 @@ protected: public: - virtual void folderCreated(shared_ptr <folderEvent> event) = 0; - virtual void folderRenamed(shared_ptr <folderEvent> event) = 0; - virtual void folderDeleted(shared_ptr <folderEvent> event) = 0; + virtual void folderCreated(const shared_ptr <folderEvent>& event) = 0; + virtual void folderRenamed(const shared_ptr <folderEvent>& event) = 0; + virtual void folderDeleted(const shared_ptr <folderEvent>& event) = 0; }; diff --git a/src/vmime/net/folder.cpp b/src/vmime/net/folder.cpp index 78ed5131..38f60523 100644 --- a/src/vmime/net/folder.cpp +++ b/src/vmime/net/folder.cpp @@ -60,7 +60,7 @@ void folder::removeMessageChangedListener(events::messageChangedListener* l) } -void folder::notifyMessageChanged(shared_ptr <events::messageChangedEvent> event) +void folder::notifyMessageChanged(const shared_ptr <events::messageChangedEvent>& event) { for (std::list <events::messageChangedListener*>::iterator it = m_messageChangedListeners.begin() ; it != m_messageChangedListeners.end() ; ++it) @@ -82,7 +82,7 @@ void folder::removeMessageCountListener(events::messageCountListener* l) } -void folder::notifyMessageCount(shared_ptr <events::messageCountEvent> event) +void folder::notifyMessageCount(const shared_ptr <events::messageCountEvent>& event) { for (std::list <events::messageCountListener*>::iterator it = m_messageCountListeners.begin() ; it != m_messageCountListeners.end() ; ++it) @@ -104,7 +104,7 @@ void folder::removeFolderListener(events::folderListener* l) } -void folder::notifyFolder(shared_ptr <events::folderEvent> event) +void folder::notifyFolder(const shared_ptr <events::folderEvent>& event) { for (std::list <events::folderListener*>::iterator it = m_folderListeners.begin() ; it != m_folderListeners.end() ; ++it) @@ -114,7 +114,7 @@ void folder::notifyFolder(shared_ptr <events::folderEvent> event) } -void folder::notifyEvent(shared_ptr <events::event> event) +void folder::notifyEvent(const shared_ptr <events::event>& event) { if (event->getClass() == events::messageCountEvent::EVENT_CLASS) { diff --git a/src/vmime/net/folder.hpp b/src/vmime/net/folder.hpp index 5186bae0..8117d7d1 100644 --- a/src/vmime/net/folder.hpp +++ b/src/vmime/net/folder.hpp @@ -274,7 +274,7 @@ public: * @throw exceptions::net_exception if an error occurs */ virtual messageSet addMessage - (shared_ptr <vmime::message> msg, + (const shared_ptr <vmime::message>& msg, const int flags = -1, vmime::datetime* date = NULL, utility::progressListener* progress = NULL) = 0; @@ -366,7 +366,7 @@ public: * @param attribs set of attributes to fetch * @throw exceptions::net_exception if an error occurs */ - virtual void fetchMessage(shared_ptr <message> msg, const fetchAttributes& attribs) = 0; + virtual void fetchMessage(const shared_ptr <message>& msg, const fetchAttributes& attribs) = 0; /** Get new references to messages in this folder, given either their * sequence numbers or UIDs, and fetch objects for them at the same time. @@ -408,10 +408,10 @@ public: protected: - void notifyMessageChanged(shared_ptr <events::messageChangedEvent> event); - void notifyMessageCount(shared_ptr <events::messageCountEvent> event); - void notifyFolder(shared_ptr <events::folderEvent> event); - void notifyEvent(shared_ptr <events::event> event); + void notifyMessageChanged(const shared_ptr <events::messageChangedEvent>& event); + void notifyMessageCount(const shared_ptr <events::messageCountEvent>& event); + void notifyFolder(const shared_ptr <events::folderEvent>& event); + void notifyEvent(const shared_ptr <events::event>& event); private: diff --git a/src/vmime/net/imap/IMAPCommand.cpp b/src/vmime/net/imap/IMAPCommand.cpp index b1840d8d..908b9152 100644 --- a/src/vmime/net/imap/IMAPCommand.cpp +++ b/src/vmime/net/imap/IMAPCommand.cpp @@ -396,7 +396,7 @@ const string IMAPCommand::getTraceText() const } -void IMAPCommand::send(shared_ptr <IMAPConnection> conn) +void IMAPCommand::send(const shared_ptr <IMAPConnection>& conn) { conn->sendCommand(dynamicCast <IMAPCommand>(shared_from_this())); } diff --git a/src/vmime/net/imap/IMAPCommand.hpp b/src/vmime/net/imap/IMAPCommand.hpp index dd499859..09f34c66 100644 --- a/src/vmime/net/imap/IMAPCommand.hpp +++ b/src/vmime/net/imap/IMAPCommand.hpp @@ -85,7 +85,7 @@ public: * * @param conn connection onto which the command will be sent */ - virtual void send(shared_ptr <IMAPConnection> conn); + virtual void send(const shared_ptr <IMAPConnection>& conn); /** Returns the full text of the command, including command name * and parameters (if any). This is the text that will be sent diff --git a/src/vmime/net/imap/IMAPConnection.cpp b/src/vmime/net/imap/IMAPConnection.cpp index 0cc08178..7fc86188 100644 --- a/src/vmime/net/imap/IMAPConnection.cpp +++ b/src/vmime/net/imap/IMAPConnection.cpp @@ -66,7 +66,7 @@ namespace net { namespace imap { -IMAPConnection::IMAPConnection(shared_ptr <IMAPStore> store, shared_ptr <security::authenticator> auth) +IMAPConnection::IMAPConnection(const shared_ptr <IMAPStore>& store, const shared_ptr <security::authenticator>& auth) : m_store(store), m_auth(auth), m_socket(null), m_parser(null), m_tag(null), m_hierarchySeparator('\0'), m_state(STATE_NONE), m_timeoutHandler(null), m_secured(false), m_firstTag(true), m_capabilitiesFetched(false), m_noModSeq(false) @@ -754,7 +754,7 @@ void IMAPConnection::initHierarchySeparator() } -void IMAPConnection::sendCommand(shared_ptr <IMAPCommand> cmd) +void IMAPConnection::sendCommand(const shared_ptr <IMAPCommand>& cmd) { if (!m_firstTag) ++(*m_tag); @@ -830,7 +830,7 @@ shared_ptr <const socket> IMAPConnection::getSocket() const } -void IMAPConnection::setSocket(shared_ptr <socket> sok) +void IMAPConnection::setSocket(const shared_ptr <socket>& sok) { m_socket = sok; m_parser->setSocket(sok); diff --git a/src/vmime/net/imap/IMAPConnection.hpp b/src/vmime/net/imap/IMAPConnection.hpp index 0ce9092d..9a277f7c 100644 --- a/src/vmime/net/imap/IMAPConnection.hpp +++ b/src/vmime/net/imap/IMAPConnection.hpp @@ -56,7 +56,7 @@ class VMIME_EXPORT IMAPConnection : public object, public enable_shared_from_thi { public: - IMAPConnection(shared_ptr <IMAPStore> store, shared_ptr <security::authenticator> auth); + IMAPConnection(const shared_ptr <IMAPStore>& store, const shared_ptr <security::authenticator>& auth); ~IMAPConnection(); @@ -81,7 +81,7 @@ public: char hierarchySeparator() const; - void sendCommand(shared_ptr <IMAPCommand> cmd); + void sendCommand(const shared_ptr <IMAPCommand>& cmd); void sendRaw(const byte_t* buffer, const size_t count); IMAPParser::response* readResponse(IMAPParser::literalHandler* lh = NULL); @@ -104,7 +104,7 @@ public: shared_ptr <connectionInfos> getConnectionInfos() const; shared_ptr <const socket> getSocket() const; - void setSocket(shared_ptr <socket> sok); + void setSocket(const shared_ptr <socket>& sok); shared_ptr <tracer> getTracer(); diff --git a/src/vmime/net/imap/IMAPFolder.cpp b/src/vmime/net/imap/IMAPFolder.cpp index 1fbe1331..a142f7f5 100644 --- a/src/vmime/net/imap/IMAPFolder.cpp +++ b/src/vmime/net/imap/IMAPFolder.cpp @@ -52,7 +52,7 @@ namespace net { namespace imap { -IMAPFolder::IMAPFolder(const folder::path& path, shared_ptr <IMAPStore> store, shared_ptr <folderAttributes> attribs) +IMAPFolder::IMAPFolder(const folder::path& path, const shared_ptr <IMAPStore>& store, const shared_ptr <folderAttributes>& attribs) : m_store(store), m_connection(store->connection()), m_path(path), m_name(path.isEmpty() ? folder::path::component("") : path.getLastComponent()), m_mode(-1), m_open(false), m_attribs(attribs) @@ -837,7 +837,7 @@ void IMAPFolder::fetchMessages(std::vector <shared_ptr <message> >& msg, const f } -void IMAPFolder::fetchMessage(shared_ptr <message> msg, const fetchAttributes& options) +void IMAPFolder::fetchMessage(const shared_ptr <message>& msg, const fetchAttributes& options) { std::vector <shared_ptr <message> > msgs; msgs.push_back(msg); @@ -1044,7 +1044,7 @@ void IMAPFolder::setMessageFlags(const messageSet& msgs, const int flags, const messageSet IMAPFolder::addMessage - (shared_ptr <vmime::message> msg, const int flags, + (const shared_ptr <vmime::message>& msg, const int flags, vmime::datetime* date, utility::progressListener* progress) { std::ostringstream oss; diff --git a/src/vmime/net/imap/IMAPFolder.hpp b/src/vmime/net/imap/IMAPFolder.hpp index d4e1c34a..15663232 100644 --- a/src/vmime/net/imap/IMAPFolder.hpp +++ b/src/vmime/net/imap/IMAPFolder.hpp @@ -63,7 +63,7 @@ private: friend class IMAPMessage; IMAPFolder(const IMAPFolder&); - IMAPFolder(const folder::path& path, shared_ptr <IMAPStore> store, shared_ptr <folderAttributes> attribs); + IMAPFolder(const folder::path& path, const shared_ptr <IMAPStore>& store, const shared_ptr <folderAttributes>& attribs); public: @@ -103,7 +103,7 @@ public: void setMessageFlags(const messageSet& msgs, const int flags, const int mode = message::FLAG_MODE_SET); messageSet addMessage - (shared_ptr <vmime::message> msg, + (const shared_ptr <vmime::message>& msg, const int flags = -1, vmime::datetime* date = NULL, utility::progressListener* progress = NULL); @@ -131,7 +131,7 @@ public: void fetchMessages(std::vector <shared_ptr <message> >& msg, const fetchAttributes& options, utility::progressListener* progress = NULL); - void fetchMessage(shared_ptr <message> msg, const fetchAttributes& options); + void fetchMessage(const shared_ptr <message>& msg, const fetchAttributes& options); std::vector <shared_ptr <message> > getAndFetchMessages (const messageSet& msgs, const fetchAttributes& attribs); diff --git a/src/vmime/net/imap/IMAPMessage.cpp b/src/vmime/net/imap/IMAPMessage.cpp index 123a94a9..87f78f38 100644 --- a/src/vmime/net/imap/IMAPMessage.cpp +++ b/src/vmime/net/imap/IMAPMessage.cpp @@ -101,7 +101,7 @@ private: // -IMAPMessage::IMAPMessage(shared_ptr <IMAPFolder> folder, const size_t num) +IMAPMessage::IMAPMessage(const shared_ptr <IMAPFolder>& folder, const size_t num) : m_folder(folder), m_num(num), m_size(-1U), m_flags(FLAG_UNDEFINED), m_expunged(false), m_modseq(0), m_structure(null) { @@ -109,7 +109,7 @@ IMAPMessage::IMAPMessage(shared_ptr <IMAPFolder> folder, const size_t num) } -IMAPMessage::IMAPMessage(shared_ptr <IMAPFolder> folder, const size_t num, const uid& uid) +IMAPMessage::IMAPMessage(const shared_ptr <IMAPFolder>& folder, const size_t num, const uid& uid) : m_folder(folder), m_num(num), m_size(-1), m_flags(FLAG_UNDEFINED), m_expunged(false), m_uid(uid), m_modseq(0), m_structure(null) { @@ -225,7 +225,7 @@ void IMAPMessage::extract void IMAPMessage::extractPart - (shared_ptr <const messagePart> p, + (const shared_ptr <const messagePart>& p, utility::outputStream& os, utility::progressListener* progress, const size_t start, const size_t length, @@ -241,7 +241,7 @@ void IMAPMessage::extractPart } -void IMAPMessage::fetchPartHeader(shared_ptr <messagePart> p) +void IMAPMessage::fetchPartHeader(const shared_ptr <messagePart>& p) { shared_ptr <IMAPFolder> folder = m_folder.lock(); @@ -257,7 +257,7 @@ void IMAPMessage::fetchPartHeader(shared_ptr <messagePart> p) } -void IMAPMessage::fetchPartHeaderForStructure(shared_ptr <messageStructure> str) +void IMAPMessage::fetchPartHeaderForStructure(const shared_ptr <messageStructure>& str) { for (size_t i = 0, n = str->getPartCount() ; i < n ; ++i) { @@ -273,7 +273,7 @@ void IMAPMessage::fetchPartHeaderForStructure(shared_ptr <messageStructure> str) size_t IMAPMessage::extractImpl - (shared_ptr <const messagePart> p, + (const shared_ptr <const messagePart>& p, utility::outputStream& os, utility::progressListener* progress, const size_t start, const size_t length, @@ -414,11 +414,11 @@ size_t IMAPMessage::extractImpl IMAPCommand::FETCH( m_uid.empty() ? messageSet::byNumber(m_num) : messageSet::byUID(m_uid), fetchParams - )->send(constCast <IMAPFolder>(folder)->m_connection); + )->send(folder->m_connection); // Get the response scoped_ptr <IMAPParser::response> resp - (constCast <IMAPFolder>(folder)->m_connection->readResponse(&literalHandler)); + (folder->m_connection->readResponse(&literalHandler)); if (resp->isBad() || resp->response_done()->response_tagged()-> resp_cond_state()->status() != IMAPParser::resp_cond_state::OK) @@ -611,7 +611,7 @@ void IMAPMessage::setFlags(const int flags, const int mode) void IMAPMessage::constructParsedMessage - (shared_ptr <bodyPart> parentPart, shared_ptr <messageStructure> str, int level) + (const shared_ptr <bodyPart>& parentPart, const shared_ptr <messageStructure>& str, int level) { if (level == 0) { diff --git a/src/vmime/net/imap/IMAPMessage.hpp b/src/vmime/net/imap/IMAPMessage.hpp index 93545f22..48722127 100644 --- a/src/vmime/net/imap/IMAPMessage.hpp +++ b/src/vmime/net/imap/IMAPMessage.hpp @@ -59,8 +59,8 @@ private: public: - IMAPMessage(shared_ptr <IMAPFolder> folder, const size_t num); - IMAPMessage(shared_ptr <IMAPFolder> folder, const size_t num, const uid& uid); + IMAPMessage(const shared_ptr <IMAPFolder>& folder, const size_t num); + IMAPMessage(const shared_ptr <IMAPFolder>& folder, const size_t num, const uid& uid); ~IMAPMessage(); @@ -99,13 +99,13 @@ public: const bool peek = false) const; void extractPart - (shared_ptr <const messagePart> p, + (const shared_ptr <const messagePart>& p, utility::outputStream& os, utility::progressListener* progress = NULL, const size_t start = 0, const size_t length = -1, const bool peek = false) const; - void fetchPartHeader(shared_ptr <messagePart> p); + void fetchPartHeader(const shared_ptr <messagePart>& p); shared_ptr <vmime::message> getParsedMessage(); @@ -135,7 +135,7 @@ private: * * @param str structure for which to fetch parts headers */ - void fetchPartHeaderForStructure(shared_ptr <messageStructure> str); + void fetchPartHeaderForStructure(const shared_ptr <messageStructure>& str); /** Recursively contruct parsed message from structure. * Called by getParsedMessage(). @@ -144,7 +144,7 @@ private: * @param str structure for which to construct part * @param level current nesting level (0 is root) */ - void constructParsedMessage(shared_ptr <bodyPart> parentPart, shared_ptr <messageStructure> str, int level = 0); + void constructParsedMessage(const shared_ptr <bodyPart>& parentPart, const shared_ptr <messageStructure>& str, int level = 0); enum ExtractFlags @@ -155,7 +155,7 @@ private: }; size_t extractImpl - (shared_ptr <const messagePart> p, + (const shared_ptr <const messagePart>& p, utility::outputStream& os, utility::progressListener* progress, const size_t start, const size_t length, diff --git a/src/vmime/net/imap/IMAPMessagePart.cpp b/src/vmime/net/imap/IMAPMessagePart.cpp index 54c29a9e..6f3e7167 100644 --- a/src/vmime/net/imap/IMAPMessagePart.cpp +++ b/src/vmime/net/imap/IMAPMessagePart.cpp @@ -36,7 +36,7 @@ namespace net { namespace imap { -IMAPMessagePart::IMAPMessagePart(shared_ptr <IMAPMessagePart> parent, const size_t number, const IMAPParser::body_type_mpart* mpart) +IMAPMessagePart::IMAPMessagePart(const shared_ptr <IMAPMessagePart>& parent, const size_t number, const IMAPParser::body_type_mpart* mpart) : m_parent(parent), m_header(null), m_number(number), m_size(0) { m_mediaType = vmime::mediaType @@ -44,7 +44,7 @@ IMAPMessagePart::IMAPMessagePart(shared_ptr <IMAPMessagePart> parent, const size } -IMAPMessagePart::IMAPMessagePart(shared_ptr <IMAPMessagePart> parent, const size_t number, const IMAPParser::body_type_1part* part) +IMAPMessagePart::IMAPMessagePart(const shared_ptr <IMAPMessagePart>& parent, const size_t number, const IMAPParser::body_type_1part* part) : m_parent(parent), m_header(null), m_number(number), m_size(0) { if (part->body_type_text()) @@ -137,7 +137,7 @@ shared_ptr <const header> IMAPMessagePart::getHeader() const // static shared_ptr <IMAPMessagePart> IMAPMessagePart::create - (shared_ptr <IMAPMessagePart> parent, const size_t number, const IMAPParser::body* body) + (const shared_ptr <IMAPMessagePart>& parent, const size_t number, const IMAPParser::body* body) { if (body->body_type_mpart()) { diff --git a/src/vmime/net/imap/IMAPMessagePart.hpp b/src/vmime/net/imap/IMAPMessagePart.hpp index 2e19f551..d095c12f 100644 --- a/src/vmime/net/imap/IMAPMessagePart.hpp +++ b/src/vmime/net/imap/IMAPMessagePart.hpp @@ -48,8 +48,8 @@ class VMIME_EXPORT IMAPMessagePart : public messagePart { public: - IMAPMessagePart(shared_ptr <IMAPMessagePart> parent, const size_t number, const IMAPParser::body_type_mpart* mpart); - IMAPMessagePart(shared_ptr <IMAPMessagePart> parent, const size_t number, const IMAPParser::body_type_1part* part); + IMAPMessagePart(const shared_ptr <IMAPMessagePart>& parent, const size_t number, const IMAPParser::body_type_mpart* mpart); + IMAPMessagePart(const shared_ptr <IMAPMessagePart>& parent, const size_t number, const IMAPParser::body_type_1part* part); shared_ptr <const messageStructure> getStructure() const; shared_ptr <messageStructure> getStructure(); @@ -65,7 +65,7 @@ public: static shared_ptr <IMAPMessagePart> create - (shared_ptr <IMAPMessagePart> parent, const size_t number, const IMAPParser::body* body); + (const shared_ptr <IMAPMessagePart>& parent, const size_t number, const IMAPParser::body* body); header& getOrCreateHeader(); diff --git a/src/vmime/net/imap/IMAPMessagePartContentHandler.cpp b/src/vmime/net/imap/IMAPMessagePartContentHandler.cpp index 1f53f082..0917d0f7 100644 --- a/src/vmime/net/imap/IMAPMessagePartContentHandler.cpp +++ b/src/vmime/net/imap/IMAPMessagePartContentHandler.cpp @@ -43,7 +43,7 @@ namespace imap { IMAPMessagePartContentHandler::IMAPMessagePartContentHandler - (shared_ptr <IMAPMessage> msg, shared_ptr <messagePart> part, const vmime::encoding& encoding) + (const shared_ptr <IMAPMessage>& msg, const shared_ptr <messagePart>& part, const vmime::encoding& encoding) : m_message(msg), m_part(part), m_encoding(encoding) { } @@ -52,17 +52,15 @@ IMAPMessagePartContentHandler::IMAPMessagePartContentHandler shared_ptr <contentHandler> IMAPMessagePartContentHandler::clone() const { return make_shared <IMAPMessagePartContentHandler> - (constCast <IMAPMessage>(m_message.lock()), - constCast <messagePart>(m_part.lock()), - m_encoding); + (m_message.lock(), m_part.lock(), m_encoding); } void IMAPMessagePartContentHandler::generate (utility::outputStream& os, const vmime::encoding& enc, const size_t maxLineLength) const { - shared_ptr <IMAPMessage> msg = constCast <IMAPMessage>(m_message.lock()); - shared_ptr <messagePart> part = constCast <messagePart>(m_part.lock()); + shared_ptr <IMAPMessage> msg = m_message.lock(); + shared_ptr <messagePart> part = m_part.lock(); // Data is already encoded if (isEncoded()) @@ -128,8 +126,8 @@ void IMAPMessagePartContentHandler::generate void IMAPMessagePartContentHandler::extract (utility::outputStream& os, utility::progressListener* progress) const { - shared_ptr <IMAPMessage> msg = constCast <IMAPMessage>(m_message.lock()); - shared_ptr <messagePart> part = constCast <messagePart>(m_part.lock()); + shared_ptr <IMAPMessage> msg = m_message.lock(); + shared_ptr <messagePart> part = m_part.lock(); // No decoding to perform if (!isEncoded()) @@ -158,8 +156,8 @@ void IMAPMessagePartContentHandler::extract void IMAPMessagePartContentHandler::extractRaw (utility::outputStream& os, utility::progressListener* progress) const { - shared_ptr <IMAPMessage> msg = constCast <IMAPMessage>(m_message.lock()); - shared_ptr <messagePart> part = constCast <messagePart>(m_part.lock()); + shared_ptr <IMAPMessage> msg = m_message.lock(); + shared_ptr <messagePart> part = m_part.lock(); msg->extractPart(part, os, progress); } diff --git a/src/vmime/net/imap/IMAPMessagePartContentHandler.hpp b/src/vmime/net/imap/IMAPMessagePartContentHandler.hpp index cb52b2e3..8314fa95 100644 --- a/src/vmime/net/imap/IMAPMessagePartContentHandler.hpp +++ b/src/vmime/net/imap/IMAPMessagePartContentHandler.hpp @@ -44,7 +44,7 @@ class VMIME_EXPORT IMAPMessagePartContentHandler : public contentHandler { public: - IMAPMessagePartContentHandler(shared_ptr <IMAPMessage> msg, shared_ptr <messagePart> part, const vmime::encoding& encoding); + IMAPMessagePartContentHandler(const shared_ptr <IMAPMessage>& msg, const shared_ptr <messagePart>& part, const vmime::encoding& encoding); shared_ptr <contentHandler> clone() const; diff --git a/src/vmime/net/imap/IMAPMessageStructure.cpp b/src/vmime/net/imap/IMAPMessageStructure.cpp index 689c495d..1e6c1b32 100644 --- a/src/vmime/net/imap/IMAPMessageStructure.cpp +++ b/src/vmime/net/imap/IMAPMessageStructure.cpp @@ -47,7 +47,7 @@ IMAPMessageStructure::IMAPMessageStructure(const IMAPParser::body* body) } -IMAPMessageStructure::IMAPMessageStructure(shared_ptr <IMAPMessagePart> parent, const std::vector <IMAPParser::body*>& list) +IMAPMessageStructure::IMAPMessageStructure(const shared_ptr <IMAPMessagePart>& parent, const std::vector <IMAPParser::body*>& list) { size_t number = 0; diff --git a/src/vmime/net/imap/IMAPMessageStructure.hpp b/src/vmime/net/imap/IMAPMessageStructure.hpp index 44b6d6f0..f24e518c 100644 --- a/src/vmime/net/imap/IMAPMessageStructure.hpp +++ b/src/vmime/net/imap/IMAPMessageStructure.hpp @@ -50,7 +50,7 @@ public: IMAPMessageStructure(); IMAPMessageStructure(const IMAPParser::body* body); - IMAPMessageStructure(shared_ptr <IMAPMessagePart> parent, const std::vector <IMAPParser::body*>& list); + IMAPMessageStructure(const shared_ptr <IMAPMessagePart>& parent, const std::vector <IMAPParser::body*>& list); shared_ptr <const messagePart> getPartAt(const size_t x) const; shared_ptr <messagePart> getPartAt(const size_t x); diff --git a/src/vmime/net/imap/IMAPParser.hpp b/src/vmime/net/imap/IMAPParser.hpp index 8b24c9ca..33d091cc 100644 --- a/src/vmime/net/imap/IMAPParser.hpp +++ b/src/vmime/net/imap/IMAPParser.hpp @@ -273,7 +273,7 @@ public: * * @param tag IMAP command tag */ - void setTag(shared_ptr <IMAPTag> tag) + void setTag(const shared_ptr <IMAPTag>& tag) { m_tag = tag; } @@ -292,7 +292,7 @@ public: * * @param sok socket */ - void setSocket(shared_ptr <socket> sok) + void setSocket(const shared_ptr <socket>& sok) { m_socket = sok; } @@ -301,7 +301,7 @@ public: * * @param toh timeout handler */ - void setTimeoutHandler(shared_ptr <timeoutHandler> toh) + void setTimeoutHandler(const shared_ptr <timeoutHandler>& toh) { m_timeoutHandler = toh; } @@ -310,7 +310,7 @@ public: * * @param tr tracer */ - void setTracer(shared_ptr <tracer> tr) + void setTracer(const shared_ptr <tracer>& tr) { m_tracer = tr; } @@ -1996,6 +1996,8 @@ public: if (name == "marked") m_type = MARKED; + break; + case 'n': if (name == "noinferiors") @@ -2003,6 +2005,8 @@ public: else if (name == "noselect") m_type = NOSELECT; + break; + case 's': if (name == "sent") diff --git a/src/vmime/net/imap/IMAPSStore.cpp b/src/vmime/net/imap/IMAPSStore.cpp index c9e64f5b..f70c0915 100644 --- a/src/vmime/net/imap/IMAPSStore.cpp +++ b/src/vmime/net/imap/IMAPSStore.cpp @@ -35,7 +35,7 @@ namespace net { namespace imap { -IMAPSStore::IMAPSStore(shared_ptr <session> sess, shared_ptr <security::authenticator> auth) +IMAPSStore::IMAPSStore(const shared_ptr <session>& sess, const shared_ptr <security::authenticator>& auth) : IMAPStore(sess, auth, true) { } diff --git a/src/vmime/net/imap/IMAPSStore.hpp b/src/vmime/net/imap/IMAPSStore.hpp index 9d27bdd0..8d6896d7 100644 --- a/src/vmime/net/imap/IMAPSStore.hpp +++ b/src/vmime/net/imap/IMAPSStore.hpp @@ -46,7 +46,7 @@ class VMIME_EXPORT IMAPSStore : public IMAPStore { public: - IMAPSStore(shared_ptr <session> sess, shared_ptr <security::authenticator> auth); + IMAPSStore(const shared_ptr <session>& sess, const shared_ptr <security::authenticator>& auth); ~IMAPSStore(); const string getProtocolName() const; diff --git a/src/vmime/net/imap/IMAPStore.cpp b/src/vmime/net/imap/IMAPStore.cpp index bf93f284..7abfe8ae 100644 --- a/src/vmime/net/imap/IMAPStore.cpp +++ b/src/vmime/net/imap/IMAPStore.cpp @@ -44,7 +44,7 @@ namespace net { namespace imap { -IMAPStore::IMAPStore(shared_ptr <session> sess, shared_ptr <security::authenticator> auth, const bool secured) +IMAPStore::IMAPStore(const shared_ptr <session>& sess, const shared_ptr <security::authenticator>& auth, const bool secured) : store(sess, getInfosInstance(), auth), m_connection(null), m_isIMAPS(secured) { } diff --git a/src/vmime/net/imap/IMAPStore.hpp b/src/vmime/net/imap/IMAPStore.hpp index f854fadf..80932af4 100644 --- a/src/vmime/net/imap/IMAPStore.hpp +++ b/src/vmime/net/imap/IMAPStore.hpp @@ -60,7 +60,7 @@ class VMIME_EXPORT IMAPStore : public store public: - IMAPStore(shared_ptr <session> sess, shared_ptr <security::authenticator> auth, const bool secured = false); + IMAPStore(const shared_ptr <session>& sess, const shared_ptr <security::authenticator>& auth, const bool secured = false); ~IMAPStore(); const string getProtocolName() const; diff --git a/src/vmime/net/imap/IMAPUtils.cpp b/src/vmime/net/imap/IMAPUtils.cpp index 6124edcf..bffc2c78 100644 --- a/src/vmime/net/imap/IMAPUtils.cpp +++ b/src/vmime/net/imap/IMAPUtils.cpp @@ -381,7 +381,7 @@ const folder::path::component IMAPUtils::fromModifiedUTF7(const string& text) // static void IMAPUtils::mailboxFlagsToFolderAttributes - (shared_ptr <const IMAPConnection> cnt, const IMAPParser::mailbox_flag_list* list, + (const shared_ptr <const IMAPConnection>& cnt, const IMAPParser::mailbox_flag_list* list, folderAttributes& attribs) { int specialUse = folderAttributes::SPECIALUSE_NONE; @@ -594,7 +594,7 @@ const string IMAPUtils::dateTime(const vmime::datetime& date) // static shared_ptr <IMAPCommand> IMAPUtils::buildFetchCommand - (shared_ptr <IMAPConnection> cnt, const messageSet& msgs, const fetchAttributes& options) + (const shared_ptr <IMAPConnection>& cnt, const messageSet& msgs, const fetchAttributes& options) { // Example: // C: A654 FETCH 2:4 (FLAGS BODY[HEADER.FIELDS (DATE FROM)]) @@ -694,6 +694,7 @@ public: IMAPUIDMessageSetEnumerator() : m_first(true) { + m_oss.imbue(std::locale::classic()); } void enumerateNumberMessageRange(const vmime::net::numberMessageRange& range) diff --git a/src/vmime/net/imap/IMAPUtils.hpp b/src/vmime/net/imap/IMAPUtils.hpp index 6140855d..a7daf736 100644 --- a/src/vmime/net/imap/IMAPUtils.hpp +++ b/src/vmime/net/imap/IMAPUtils.hpp @@ -74,7 +74,7 @@ public: * @param attribs reference to an object holding folder attributes */ static void mailboxFlagsToFolderAttributes - (shared_ptr <const IMAPConnection> cnt, + (const shared_ptr <const IMAPConnection>& cnt, const IMAPParser::mailbox_flag_list* list, folderAttributes& attribs); @@ -98,7 +98,7 @@ public: * @return fetch request */ static shared_ptr <IMAPCommand> buildFetchCommand - (shared_ptr <IMAPConnection> cnt, const messageSet& msgs, const fetchAttributes& options); + (const shared_ptr <IMAPConnection>& cnt, const messageSet& msgs, const fetchAttributes& options); /** Convert a parser-style address list to a mailbox list. * @@ -124,7 +124,7 @@ public: private: static const string buildFetchRequestImpl - (shared_ptr <IMAPConnection> cnt, const string& mode, const string& set, const int options); + (const shared_ptr <IMAPConnection>& cnt, const string& mode, const string& set, const int options); }; diff --git a/src/vmime/net/maildir/format/courierMaildirFormat.cpp b/src/vmime/net/maildir/format/courierMaildirFormat.cpp index 6d460d5e..78753796 100644 --- a/src/vmime/net/maildir/format/courierMaildirFormat.cpp +++ b/src/vmime/net/maildir/format/courierMaildirFormat.cpp @@ -41,7 +41,7 @@ namespace maildir { namespace format { -courierMaildirFormat::courierMaildirFormat(shared_ptr <context> ctx) +courierMaildirFormat::courierMaildirFormat(const shared_ptr <context>& ctx) : maildirFormat(ctx) { } diff --git a/src/vmime/net/maildir/format/courierMaildirFormat.hpp b/src/vmime/net/maildir/format/courierMaildirFormat.hpp index b8443426..6b6841e2 100644 --- a/src/vmime/net/maildir/format/courierMaildirFormat.hpp +++ b/src/vmime/net/maildir/format/courierMaildirFormat.hpp @@ -47,7 +47,7 @@ class VMIME_EXPORT courierMaildirFormat : public maildirFormat { public: - courierMaildirFormat(shared_ptr <context> ctx); + courierMaildirFormat(const shared_ptr <context>& ctx); /* Folder types: diff --git a/src/vmime/net/maildir/format/kmailMaildirFormat.cpp b/src/vmime/net/maildir/format/kmailMaildirFormat.cpp index 975752a5..c52a2f45 100644 --- a/src/vmime/net/maildir/format/kmailMaildirFormat.cpp +++ b/src/vmime/net/maildir/format/kmailMaildirFormat.cpp @@ -41,7 +41,7 @@ namespace maildir { namespace format { -kmailMaildirFormat::kmailMaildirFormat(shared_ptr <context> ctx) +kmailMaildirFormat::kmailMaildirFormat(const shared_ptr <context>& ctx) : maildirFormat(ctx) { } diff --git a/src/vmime/net/maildir/format/kmailMaildirFormat.hpp b/src/vmime/net/maildir/format/kmailMaildirFormat.hpp index 98ca212e..854e60be 100644 --- a/src/vmime/net/maildir/format/kmailMaildirFormat.hpp +++ b/src/vmime/net/maildir/format/kmailMaildirFormat.hpp @@ -47,7 +47,7 @@ class VMIME_EXPORT kmailMaildirFormat : public maildirFormat { public: - kmailMaildirFormat(shared_ptr <context> ctx); + kmailMaildirFormat(const shared_ptr <context>& ctx); /* Folder types: diff --git a/src/vmime/net/maildir/maildirFolder.cpp b/src/vmime/net/maildir/maildirFolder.cpp index 8951cb1c..fec1294b 100644 --- a/src/vmime/net/maildir/maildirFolder.cpp +++ b/src/vmime/net/maildir/maildirFolder.cpp @@ -49,7 +49,7 @@ namespace net { namespace maildir { -maildirFolder::maildirFolder(const folder::path& path, shared_ptr <maildirStore> store) +maildirFolder::maildirFolder(const folder::path& path, const shared_ptr <maildirStore>& store) : m_store(store), m_path(path), m_name(path.isEmpty() ? folder::path::component("") : path.getLastComponent()), m_mode(-1), m_open(false), m_unreadMessageCount(0), m_messageCount(0) @@ -708,7 +708,7 @@ void maildirFolder::setMessageFlags messageSet maildirFolder::addMessage - (shared_ptr <vmime::message> msg, const int flags, + (const shared_ptr <vmime::message>& msg, const int flags, vmime::datetime* date, utility::progressListener* progress) { std::ostringstream oss; @@ -1221,7 +1221,7 @@ void maildirFolder::fetchMessages(std::vector <shared_ptr <message> >& msg, } -void maildirFolder::fetchMessage(shared_ptr <message> msg, const fetchAttributes& options) +void maildirFolder::fetchMessage(const shared_ptr <message>& msg, const fetchAttributes& options) { shared_ptr <maildirStore> store = m_store.lock(); diff --git a/src/vmime/net/maildir/maildirFolder.hpp b/src/vmime/net/maildir/maildirFolder.hpp index d6bdb7e8..ff0cff61 100644 --- a/src/vmime/net/maildir/maildirFolder.hpp +++ b/src/vmime/net/maildir/maildirFolder.hpp @@ -61,7 +61,7 @@ private: friend class maildirMessage; maildirFolder(const maildirFolder&) : folder() { } - maildirFolder(const folder::path& path, shared_ptr <maildirStore> store); + maildirFolder(const folder::path& path, const shared_ptr <maildirStore>& store); public: @@ -99,7 +99,7 @@ public: void setMessageFlags(const messageSet& msgs, const int flags, const int mode = message::FLAG_MODE_SET); - messageSet addMessage(shared_ptr <vmime::message> msg, const int flags = -1, vmime::datetime* date = NULL, utility::progressListener* progress = NULL); + messageSet addMessage(const shared_ptr <vmime::message>& msg, const int flags = -1, vmime::datetime* date = NULL, utility::progressListener* progress = NULL); messageSet addMessage(utility::inputStream& is, const size_t size, const int flags = -1, vmime::datetime* date = NULL, utility::progressListener* progress = NULL); messageSet copyMessages(const folder::path& dest, const messageSet& msgs); @@ -116,7 +116,7 @@ public: void fetchMessages(std::vector <shared_ptr <message> >& msg, const fetchAttributes& options, utility::progressListener* progress = NULL); - void fetchMessage(shared_ptr <message> msg, const fetchAttributes& options); + void fetchMessage(const shared_ptr <message>& msg, const fetchAttributes& options); std::vector <shared_ptr <message> > getAndFetchMessages (const messageSet& msgs, const fetchAttributes& attribs); diff --git a/src/vmime/net/maildir/maildirFormat.cpp b/src/vmime/net/maildir/maildirFormat.cpp index f7a3c8fe..7f2cb5f1 100644 --- a/src/vmime/net/maildir/maildirFormat.cpp +++ b/src/vmime/net/maildir/maildirFormat.cpp @@ -50,15 +50,15 @@ const utility::file::path::component maildirFormat::NEW_DIR("new", vmime::charse // maildirFormat::context // -maildirFormat::context::context(shared_ptr <maildirStore> store) +maildirFormat::context::context(const shared_ptr <maildirStore>& store) : m_store(store) { } -shared_ptr <maildirStore> maildirFormat::context::getStore() const +shared_ptr <maildirStore> maildirFormat::context::getStore() { - return constCast <maildirStore>(m_store.lock()); + return m_store.lock(); } @@ -66,26 +66,20 @@ shared_ptr <maildirStore> maildirFormat::context::getStore() const // maildirFormat // -maildirFormat::maildirFormat(shared_ptr <context> ctx) +maildirFormat::maildirFormat(const shared_ptr <context>& ctx) : m_context(ctx) { } -shared_ptr <maildirFormat::context> maildirFormat::getContext() -{ - return m_context; -} - - -shared_ptr <const maildirFormat::context> maildirFormat::getContext() const +shared_ptr <maildirFormat::context> maildirFormat::getContext() const { return m_context; } // static -shared_ptr <maildirFormat> maildirFormat::detect(shared_ptr <maildirStore> store) +shared_ptr <maildirFormat> maildirFormat::detect(const shared_ptr <maildirStore>& store) { shared_ptr <context> ctx = make_shared <context>(store); diff --git a/src/vmime/net/maildir/maildirFormat.hpp b/src/vmime/net/maildir/maildirFormat.hpp index c0daf288..733303bd 100644 --- a/src/vmime/net/maildir/maildirFormat.hpp +++ b/src/vmime/net/maildir/maildirFormat.hpp @@ -55,9 +55,9 @@ public: { public: - context(shared_ptr <maildirStore> store); + context(const shared_ptr <maildirStore>& store); - shared_ptr <maildirStore> getStore() const; + shared_ptr <maildirStore> getStore(); private: @@ -146,7 +146,7 @@ public: * @param store of which to detect format * @return a Maildir format implementation for the specified store */ - static shared_ptr <maildirFormat> detect(shared_ptr <maildirStore> store); + static shared_ptr <maildirFormat> detect(const shared_ptr <maildirStore>& store); protected: @@ -155,20 +155,14 @@ protected: static const utility::file::path::component NEW_DIR; /**< Unread messages. */ - maildirFormat(shared_ptr <context> ctx); + maildirFormat(const shared_ptr <context>& ctx); /** Returns the current context. * * @return current context */ - shared_ptr <context> getContext(); - - /** Returns the current context (const version). - * - * @return current context - */ - shared_ptr <const context> getContext() const; + shared_ptr <context> getContext() const; /** Quick checks whether this implementation can read the Maildir * format in the specified directory. diff --git a/src/vmime/net/maildir/maildirMessage.cpp b/src/vmime/net/maildir/maildirMessage.cpp index faf00f6a..ea3d05a6 100644 --- a/src/vmime/net/maildir/maildirMessage.cpp +++ b/src/vmime/net/maildir/maildirMessage.cpp @@ -48,7 +48,7 @@ namespace net { namespace maildir { -maildirMessage::maildirMessage(shared_ptr <maildirFolder> folder, const size_t num) +maildirMessage::maildirMessage(const shared_ptr <maildirFolder>& folder, const size_t num) : m_folder(folder), m_num(num), m_size(-1), m_flags(FLAG_UNDEFINED), m_expunged(false), m_structure(null) { @@ -160,7 +160,7 @@ void maildirMessage::extract(utility::outputStream& os, } -void maildirMessage::extractPart(shared_ptr <const messagePart> p, utility::outputStream& os, +void maildirMessage::extractPart(const shared_ptr <const messagePart>& p, utility::outputStream& os, utility::progressListener* progress, const size_t start, const size_t length, const bool peek) const { @@ -217,7 +217,7 @@ void maildirMessage::extractImpl(utility::outputStream& os, utility::progressLis } -void maildirMessage::fetchPartHeader(shared_ptr <messagePart> p) +void maildirMessage::fetchPartHeader(const shared_ptr <messagePart>& p) { shared_ptr <maildirFolder> folder = m_folder.lock(); @@ -252,7 +252,7 @@ void maildirMessage::fetchPartHeader(shared_ptr <messagePart> p) } -void maildirMessage::fetch(shared_ptr <maildirFolder> msgFolder, const fetchAttributes& options) +void maildirMessage::fetch(const shared_ptr <maildirFolder>& msgFolder, const fetchAttributes& options) { shared_ptr <maildirFolder> folder = m_folder.lock(); diff --git a/src/vmime/net/maildir/maildirMessage.hpp b/src/vmime/net/maildir/maildirMessage.hpp index 5cdabfc9..3e97a981 100644 --- a/src/vmime/net/maildir/maildirMessage.hpp +++ b/src/vmime/net/maildir/maildirMessage.hpp @@ -54,7 +54,7 @@ class VMIME_EXPORT maildirMessage : public message public: - maildirMessage(shared_ptr <maildirFolder> folder, const size_t num); + maildirMessage(const shared_ptr <maildirFolder>& folder, const size_t num); ~maildirMessage(); @@ -76,15 +76,15 @@ public: void setFlags(const int flags, const int mode = FLAG_MODE_SET); void extract(utility::outputStream& os, utility::progressListener* progress = NULL, const size_t start = 0, const size_t length = -1, const bool peek = false) const; - void extractPart(shared_ptr <const messagePart> p, utility::outputStream& os, utility::progressListener* progress = NULL, const size_t start = 0, const size_t length = -1, const bool peek = false) const; + void extractPart(const shared_ptr <const messagePart>& p, utility::outputStream& os, utility::progressListener* progress = NULL, const size_t start = 0, const size_t length = -1, const bool peek = false) const; - void fetchPartHeader(shared_ptr <messagePart> p); + void fetchPartHeader(const shared_ptr <messagePart>& p); shared_ptr <vmime::message> getParsedMessage(); private: - void fetch(shared_ptr <maildirFolder> folder, const fetchAttributes& options); + void fetch(const shared_ptr <maildirFolder>& folder, const fetchAttributes& options); void onFolderClosed(); diff --git a/src/vmime/net/maildir/maildirMessagePart.cpp b/src/vmime/net/maildir/maildirMessagePart.cpp index 0b813749..787c0198 100644 --- a/src/vmime/net/maildir/maildirMessagePart.cpp +++ b/src/vmime/net/maildir/maildirMessagePart.cpp @@ -36,7 +36,7 @@ namespace net { namespace maildir { -maildirMessagePart::maildirMessagePart(shared_ptr <maildirMessagePart> parent, const size_t number, const bodyPart& part) +maildirMessagePart::maildirMessagePart(const shared_ptr <maildirMessagePart>& parent, const size_t number, const bodyPart& part) : m_parent(parent), m_header(null), m_number(number) { m_headerParsedOffset = part.getHeader()->getParsedOffset(); diff --git a/src/vmime/net/maildir/maildirMessagePart.hpp b/src/vmime/net/maildir/maildirMessagePart.hpp index db1aeb75..6aa80019 100644 --- a/src/vmime/net/maildir/maildirMessagePart.hpp +++ b/src/vmime/net/maildir/maildirMessagePart.hpp @@ -46,7 +46,7 @@ class maildirMessagePart : public messagePart { public: - maildirMessagePart(shared_ptr <maildirMessagePart> parent, const size_t number, const bodyPart& part); + maildirMessagePart(const shared_ptr <maildirMessagePart>& parent, const size_t number, const bodyPart& part); ~maildirMessagePart(); diff --git a/src/vmime/net/maildir/maildirMessageStructure.cpp b/src/vmime/net/maildir/maildirMessageStructure.cpp index 54eba981..e01c2a92 100644 --- a/src/vmime/net/maildir/maildirMessageStructure.cpp +++ b/src/vmime/net/maildir/maildirMessageStructure.cpp @@ -44,7 +44,7 @@ maildirMessageStructure::maildirMessageStructure() } -maildirMessageStructure::maildirMessageStructure(shared_ptr <maildirMessagePart> parent, const bodyPart& part) +maildirMessageStructure::maildirMessageStructure(const shared_ptr <maildirMessagePart>& parent, const bodyPart& part) { shared_ptr <maildirMessagePart> mpart = make_shared <maildirMessagePart>(parent, 0, part); mpart->initStructure(part); @@ -53,7 +53,7 @@ maildirMessageStructure::maildirMessageStructure(shared_ptr <maildirMessagePart> } -maildirMessageStructure::maildirMessageStructure(shared_ptr <maildirMessagePart> parent, const std::vector <shared_ptr <const vmime::bodyPart> >& list) +maildirMessageStructure::maildirMessageStructure(const shared_ptr <maildirMessagePart>& parent, const std::vector <shared_ptr <const vmime::bodyPart> >& list) { for (size_t i = 0 ; i < list.size() ; ++i) { diff --git a/src/vmime/net/maildir/maildirMessageStructure.hpp b/src/vmime/net/maildir/maildirMessageStructure.hpp index a43fc15c..fce5db6f 100644 --- a/src/vmime/net/maildir/maildirMessageStructure.hpp +++ b/src/vmime/net/maildir/maildirMessageStructure.hpp @@ -47,8 +47,8 @@ class maildirMessageStructure : public messageStructure public: maildirMessageStructure(); - maildirMessageStructure(shared_ptr <maildirMessagePart> parent, const bodyPart& part); - maildirMessageStructure(shared_ptr <maildirMessagePart> parent, const std::vector <shared_ptr <const vmime::bodyPart> >& list); + maildirMessageStructure(const shared_ptr <maildirMessagePart>& parent, const bodyPart& part); + maildirMessageStructure(const shared_ptr <maildirMessagePart>& parent, const std::vector <shared_ptr <const vmime::bodyPart> >& list); shared_ptr <const messagePart> getPartAt(const size_t x) const; diff --git a/src/vmime/net/maildir/maildirStore.cpp b/src/vmime/net/maildir/maildirStore.cpp index 3c777551..4029eb7d 100644 --- a/src/vmime/net/maildir/maildirStore.cpp +++ b/src/vmime/net/maildir/maildirStore.cpp @@ -52,7 +52,7 @@ namespace net { namespace maildir { -maildirStore::maildirStore(shared_ptr <session> sess, shared_ptr <security::authenticator> auth) +maildirStore::maildirStore(const shared_ptr <session>& sess, const shared_ptr <security::authenticator>& auth) : store(sess, getInfosInstance(), auth), m_connected(false) { } diff --git a/src/vmime/net/maildir/maildirStore.hpp b/src/vmime/net/maildir/maildirStore.hpp index efadfdfe..ba7b8c13 100644 --- a/src/vmime/net/maildir/maildirStore.hpp +++ b/src/vmime/net/maildir/maildirStore.hpp @@ -60,7 +60,7 @@ class VMIME_EXPORT maildirStore : public store public: - maildirStore(shared_ptr <session> sess, shared_ptr <security::authenticator> auth); + maildirStore(const shared_ptr <session>& sess, const shared_ptr <security::authenticator>& auth); ~maildirStore(); const string getProtocolName() const; diff --git a/src/vmime/net/maildir/maildirUtils.cpp b/src/vmime/net/maildir/maildirUtils.cpp index b31eb931..1c75805a 100644 --- a/src/vmime/net/maildir/maildirUtils.cpp +++ b/src/vmime/net/maildir/maildirUtils.cpp @@ -175,7 +175,7 @@ const utility::file::path::component maildirUtils::generateId() } -void maildirUtils::recursiveFSDelete(shared_ptr <utility::file> dir) +void maildirUtils::recursiveFSDelete(const shared_ptr <utility::file>& dir) { shared_ptr <utility::fileIterator> files = dir->getFiles(); diff --git a/src/vmime/net/maildir/maildirUtils.hpp b/src/vmime/net/maildir/maildirUtils.hpp index 8899bdd7..6f120636 100644 --- a/src/vmime/net/maildir/maildirUtils.hpp +++ b/src/vmime/net/maildir/maildirUtils.hpp @@ -130,7 +130,7 @@ public: * * @param dir directory to delete */ - static void recursiveFSDelete(shared_ptr <utility::file> dir); + static void recursiveFSDelete(const shared_ptr <utility::file>& dir); /** Returns a list of message numbers given a message set. * diff --git a/src/vmime/net/message.hpp b/src/vmime/net/message.hpp index ae21f2dd..68cce415 100644 --- a/src/vmime/net/message.hpp +++ b/src/vmime/net/message.hpp @@ -331,7 +331,7 @@ public: * an exception if not supported. */ virtual void extractPart - (shared_ptr <const messagePart> p, + (const shared_ptr <const messagePart>& p, utility::outputStream& os, utility::progressListener* progress = NULL, const size_t start = 0, @@ -342,7 +342,7 @@ public: * * @param p the part for which to fetch the header */ - virtual void fetchPartHeader(shared_ptr <messagePart> p) = 0; + virtual void fetchPartHeader(const shared_ptr <messagePart>& p) = 0; /** Get the RFC-822 message for this abstract message. * Warning: This may require getting some data (ie: structure and headers) from diff --git a/src/vmime/net/pop3/POP3Command.cpp b/src/vmime/net/pop3/POP3Command.cpp index 9dfaf17a..528746e0 100644 --- a/src/vmime/net/pop3/POP3Command.cpp +++ b/src/vmime/net/pop3/POP3Command.cpp @@ -245,7 +245,7 @@ const string POP3Command::getTraceText() const } -void POP3Command::send(shared_ptr <POP3Connection> conn) +void POP3Command::send(const shared_ptr <POP3Connection>& conn) { conn->getSocket()->send(m_text + "\r\n"); diff --git a/src/vmime/net/pop3/POP3Command.hpp b/src/vmime/net/pop3/POP3Command.hpp index 45aff661..7718ccb2 100644 --- a/src/vmime/net/pop3/POP3Command.hpp +++ b/src/vmime/net/pop3/POP3Command.hpp @@ -85,7 +85,7 @@ public: * * @param conn connection onto which the command will be sent */ - virtual void send(shared_ptr <POP3Connection> conn); + virtual void send(const shared_ptr <POP3Connection>& conn); /** Returns the full text of the command, including command name * and parameters (if any). diff --git a/src/vmime/net/pop3/POP3Connection.cpp b/src/vmime/net/pop3/POP3Connection.cpp index 27ab7aa2..ed098656 100644 --- a/src/vmime/net/pop3/POP3Connection.cpp +++ b/src/vmime/net/pop3/POP3Connection.cpp @@ -63,7 +63,7 @@ namespace pop3 { -POP3Connection::POP3Connection(shared_ptr <POP3Store> store, shared_ptr <security::authenticator> auth) +POP3Connection::POP3Connection(const shared_ptr <POP3Store>& store, const shared_ptr <security::authenticator>& auth) : m_store(store), m_auth(auth), m_socket(null), m_timeoutHandler(null), m_authenticated(false), m_secured(false), m_capabilitiesFetched(false) { diff --git a/src/vmime/net/pop3/POP3Connection.hpp b/src/vmime/net/pop3/POP3Connection.hpp index f40f1193..032be5cc 100644 --- a/src/vmime/net/pop3/POP3Connection.hpp +++ b/src/vmime/net/pop3/POP3Connection.hpp @@ -65,7 +65,7 @@ class VMIME_EXPORT POP3Connection : public object, public enable_shared_from_thi { public: - POP3Connection(shared_ptr <POP3Store> store, shared_ptr <security::authenticator> auth); + POP3Connection(const shared_ptr <POP3Store>& store, const shared_ptr <security::authenticator>& auth); virtual ~POP3Connection(); diff --git a/src/vmime/net/pop3/POP3Folder.cpp b/src/vmime/net/pop3/POP3Folder.cpp index 0e232c1a..8c34676e 100644 --- a/src/vmime/net/pop3/POP3Folder.cpp +++ b/src/vmime/net/pop3/POP3Folder.cpp @@ -45,7 +45,7 @@ namespace net { namespace pop3 { -POP3Folder::POP3Folder(const folder::path& path, shared_ptr <POP3Store> store) +POP3Folder::POP3Folder(const folder::path& path, const shared_ptr <POP3Store>& store) : m_store(store), m_path(path), m_name(path.isEmpty() ? folder::path::component("") : path.getLastComponent()), m_mode(-1), m_open(false) @@ -420,7 +420,7 @@ void POP3Folder::fetchMessages(std::vector <shared_ptr <message> >& msg, const f } -void POP3Folder::fetchMessage(shared_ptr <message> msg, const fetchAttributes& options) +void POP3Folder::fetchMessage(const shared_ptr <message>& msg, const fetchAttributes& options) { shared_ptr <POP3Store> store = m_store.lock(); @@ -625,7 +625,7 @@ void POP3Folder::rename(const folder::path& /* newPath */) messageSet POP3Folder::addMessage - (shared_ptr <vmime::message> /* msg */, const int /* flags */, + (const shared_ptr <vmime::message>& /* msg */, const int /* flags */, vmime::datetime* /* date */, utility::progressListener* /* progress */) { throw exceptions::operation_not_supported(); diff --git a/src/vmime/net/pop3/POP3Folder.hpp b/src/vmime/net/pop3/POP3Folder.hpp index 339399d8..92be088b 100644 --- a/src/vmime/net/pop3/POP3Folder.hpp +++ b/src/vmime/net/pop3/POP3Folder.hpp @@ -59,7 +59,7 @@ private: friend class POP3Message; POP3Folder(const POP3Folder&); - POP3Folder(const folder::path& path, shared_ptr <POP3Store> store); + POP3Folder(const folder::path& path, const shared_ptr <POP3Store>& store); public: @@ -96,7 +96,7 @@ public: void setMessageFlags(const messageSet& msgs, const int flags, const int mode = message::FLAG_MODE_SET); - messageSet addMessage(shared_ptr <vmime::message> msg, const int flags = -1, vmime::datetime* date = NULL, utility::progressListener* progress = NULL); + messageSet addMessage(const shared_ptr <vmime::message>& msg, const int flags = -1, vmime::datetime* date = NULL, utility::progressListener* progress = NULL); messageSet addMessage(utility::inputStream& is, const size_t size, const int flags = -1, vmime::datetime* date = NULL, utility::progressListener* progress = NULL); messageSet copyMessages(const folder::path& dest, const messageSet& msgs); @@ -113,7 +113,7 @@ public: void fetchMessages(std::vector <shared_ptr <message> >& msg, const fetchAttributes& options, utility::progressListener* progress = NULL); - void fetchMessage(shared_ptr <message> msg, const fetchAttributes& options); + void fetchMessage(const shared_ptr <message>& msg, const fetchAttributes& options); std::vector <shared_ptr <message> > getAndFetchMessages (const messageSet& msgs, const fetchAttributes& attribs); diff --git a/src/vmime/net/pop3/POP3Message.cpp b/src/vmime/net/pop3/POP3Message.cpp index 67ad6d16..913219b3 100644 --- a/src/vmime/net/pop3/POP3Message.cpp +++ b/src/vmime/net/pop3/POP3Message.cpp @@ -44,7 +44,7 @@ namespace net { namespace pop3 { -POP3Message::POP3Message(shared_ptr <POP3Folder> folder, const size_t num) +POP3Message::POP3Message(const shared_ptr <POP3Folder>& folder, const size_t num) : m_folder(folder), m_num(num), m_size(-1), m_deleted(false) { folder->registerMessage(this); @@ -149,7 +149,7 @@ void POP3Message::extract throw exceptions::partial_fetch_not_supported(); // Emit the "RETR" command - shared_ptr <POP3Store> store = constCast <POP3Folder>(folder)->m_store.lock(); + shared_ptr <POP3Store> store = folder->m_store.lock(); POP3Command::RETR(m_num)->send(store->getConnection()); @@ -166,7 +166,7 @@ void POP3Message::extract void POP3Message::extractPart - (shared_ptr <const messagePart> /* p */, + (const shared_ptr <const messagePart>& /* p */, utility::outputStream& /* os */, utility::progressListener* /* progress */, const size_t /* start */, const size_t /* length */, @@ -176,13 +176,13 @@ void POP3Message::extractPart } -void POP3Message::fetchPartHeader(shared_ptr <messagePart> /* p */) +void POP3Message::fetchPartHeader(const shared_ptr <messagePart>& /* p */) { throw exceptions::operation_not_supported(); } -void POP3Message::fetch(shared_ptr <POP3Folder> msgFolder, const fetchAttributes& options) +void POP3Message::fetch(const shared_ptr <POP3Folder>& msgFolder, const fetchAttributes& options) { shared_ptr <POP3Folder> folder = m_folder.lock(); diff --git a/src/vmime/net/pop3/POP3Message.hpp b/src/vmime/net/pop3/POP3Message.hpp index e4e3b079..7ac86a1b 100644 --- a/src/vmime/net/pop3/POP3Message.hpp +++ b/src/vmime/net/pop3/POP3Message.hpp @@ -56,7 +56,7 @@ private: public: - POP3Message(shared_ptr <POP3Folder> folder, const size_t num); + POP3Message(const shared_ptr <POP3Folder>& folder, const size_t num); ~POP3Message(); @@ -84,19 +84,19 @@ public: const bool peek = false) const; void extractPart - (shared_ptr <const messagePart> p, + (const shared_ptr <const messagePart>& p, utility::outputStream& os, utility::progressListener* progress = NULL, const size_t start = 0, const size_t length = -1, const bool peek = false) const; - void fetchPartHeader(shared_ptr <messagePart> p); + void fetchPartHeader(const shared_ptr <messagePart>& p); shared_ptr <vmime::message> getParsedMessage(); private: - void fetch(shared_ptr <POP3Folder> folder, const fetchAttributes& options); + void fetch(const shared_ptr <POP3Folder>& folder, const fetchAttributes& options); void onFolderClosed(); diff --git a/src/vmime/net/pop3/POP3Response.cpp b/src/vmime/net/pop3/POP3Response.cpp index de3c2cf3..1d510fb3 100644 --- a/src/vmime/net/pop3/POP3Response.cpp +++ b/src/vmime/net/pop3/POP3Response.cpp @@ -46,14 +46,14 @@ namespace net { namespace pop3 { -POP3Response::POP3Response(shared_ptr <socket> sok, shared_ptr <timeoutHandler> toh, shared_ptr <tracer> tracer) +POP3Response::POP3Response(const shared_ptr <socket>& sok, const shared_ptr <timeoutHandler>& toh, const shared_ptr <tracer>& tracer) : m_socket(sok), m_timeoutHandler(toh), m_tracer(tracer) { } // static -shared_ptr <POP3Response> POP3Response::readResponse(shared_ptr <POP3Connection> conn) +shared_ptr <POP3Response> POP3Response::readResponse(const shared_ptr <POP3Connection>& conn) { shared_ptr <POP3Response> resp = shared_ptr <POP3Response> (new POP3Response(conn->getSocket(), conn->getTimeoutHandler(), conn->getTracer())); @@ -73,7 +73,7 @@ shared_ptr <POP3Response> POP3Response::readResponse(shared_ptr <POP3Connection> // static -shared_ptr <POP3Response> POP3Response::readMultilineResponse(shared_ptr <POP3Connection> conn) +shared_ptr <POP3Response> POP3Response::readMultilineResponse(const shared_ptr <POP3Connection>& conn) { shared_ptr <POP3Response> resp = shared_ptr <POP3Response> (new POP3Response(conn->getSocket(), conn->getTimeoutHandler(), conn->getTracer())); @@ -112,7 +112,7 @@ shared_ptr <POP3Response> POP3Response::readMultilineResponse(shared_ptr <POP3Co // static shared_ptr <POP3Response> POP3Response::readLargeResponse - (shared_ptr <POP3Connection> conn, utility::outputStream& os, + (const shared_ptr <POP3Connection>& conn, utility::outputStream& os, utility::progressListener* progress, const size_t predictedSize) { shared_ptr <POP3Response> resp = shared_ptr <POP3Response> diff --git a/src/vmime/net/pop3/POP3Response.hpp b/src/vmime/net/pop3/POP3Response.hpp index d85b5405..4f0221e6 100644 --- a/src/vmime/net/pop3/POP3Response.hpp +++ b/src/vmime/net/pop3/POP3Response.hpp @@ -77,7 +77,7 @@ public: * @throws exceptions::operation_timed_out if no data * has been received within the granted time */ - static shared_ptr <POP3Response> readResponse(shared_ptr <POP3Connection> conn); + static shared_ptr <POP3Response> readResponse(const shared_ptr <POP3Connection>& conn); /** Receive and parse a multiline POP3 response from * the specified connection. @@ -87,7 +87,7 @@ public: * @throws exceptions::operation_timed_out if no data * has been received within the granted time */ - static shared_ptr <POP3Response> readMultilineResponse(shared_ptr <POP3Connection> conn); + static shared_ptr <POP3Response> readMultilineResponse(const shared_ptr <POP3Connection>& conn); /** Receive and parse a large POP3 response (eg. message data) * from the specified connection. @@ -101,7 +101,7 @@ public: * has been received within the granted time */ static shared_ptr <POP3Response> readLargeResponse - (shared_ptr <POP3Connection> conn, utility::outputStream& os, + (const shared_ptr <POP3Connection>& conn, utility::outputStream& os, utility::progressListener* progress, const size_t predictedSize); @@ -144,7 +144,7 @@ public: private: - POP3Response(shared_ptr <socket> sok, shared_ptr <timeoutHandler> toh, shared_ptr <tracer> tracer); + POP3Response(const shared_ptr <socket>& sok, const shared_ptr <timeoutHandler>& toh, const shared_ptr <tracer>& tracer); void readResponseImpl(string& buffer, const bool multiLine); size_t readResponseImpl diff --git a/src/vmime/net/pop3/POP3SStore.cpp b/src/vmime/net/pop3/POP3SStore.cpp index f1c3da74..51e58f0e 100644 --- a/src/vmime/net/pop3/POP3SStore.cpp +++ b/src/vmime/net/pop3/POP3SStore.cpp @@ -35,7 +35,7 @@ namespace net { namespace pop3 { -POP3SStore::POP3SStore(shared_ptr <session> sess, shared_ptr <security::authenticator> auth) +POP3SStore::POP3SStore(const shared_ptr <session>& sess, const shared_ptr <security::authenticator>& auth) : POP3Store(sess, auth, true) { } diff --git a/src/vmime/net/pop3/POP3SStore.hpp b/src/vmime/net/pop3/POP3SStore.hpp index e60b4ef8..ad88fa10 100644 --- a/src/vmime/net/pop3/POP3SStore.hpp +++ b/src/vmime/net/pop3/POP3SStore.hpp @@ -46,7 +46,7 @@ class VMIME_EXPORT POP3SStore : public POP3Store { public: - POP3SStore(shared_ptr <session> sess, shared_ptr <security::authenticator> auth); + POP3SStore(const shared_ptr <session>& sess, const shared_ptr <security::authenticator>& auth); ~POP3SStore(); const string getProtocolName() const; diff --git a/src/vmime/net/pop3/POP3Store.cpp b/src/vmime/net/pop3/POP3Store.cpp index 4d1bb432..020cc55e 100644 --- a/src/vmime/net/pop3/POP3Store.cpp +++ b/src/vmime/net/pop3/POP3Store.cpp @@ -42,7 +42,7 @@ namespace net { namespace pop3 { -POP3Store::POP3Store(shared_ptr <session> sess, shared_ptr <security::authenticator> auth, const bool secured) +POP3Store::POP3Store(const shared_ptr <session>& sess, const shared_ptr <security::authenticator>& auth, const bool secured) : store(sess, getInfosInstance(), auth), m_isPOP3S(secured) { } diff --git a/src/vmime/net/pop3/POP3Store.hpp b/src/vmime/net/pop3/POP3Store.hpp index b35659a0..4737715a 100644 --- a/src/vmime/net/pop3/POP3Store.hpp +++ b/src/vmime/net/pop3/POP3Store.hpp @@ -59,7 +59,7 @@ class VMIME_EXPORT POP3Store : public store public: - POP3Store(shared_ptr <session> sess, shared_ptr <security::authenticator> auth, const bool secured = false); + POP3Store(const shared_ptr <session>& sess, const shared_ptr <security::authenticator>& auth, const bool secured = false); ~POP3Store(); const string getProtocolName() const; diff --git a/src/vmime/net/pop3/POP3Utils.cpp b/src/vmime/net/pop3/POP3Utils.cpp index 0649fb79..cb17ea9b 100644 --- a/src/vmime/net/pop3/POP3Utils.cpp +++ b/src/vmime/net/pop3/POP3Utils.cpp @@ -39,7 +39,7 @@ namespace pop3 { // static -void POP3Utils::parseMultiListOrUidlResponse(shared_ptr <POP3Response> response, std::map <size_t, string>& result) +void POP3Utils::parseMultiListOrUidlResponse(const shared_ptr <POP3Response>& response, std::map <size_t, string>& result) { std::map <size_t, string> ids; diff --git a/src/vmime/net/pop3/POP3Utils.hpp b/src/vmime/net/pop3/POP3Utils.hpp index c7d15b07..b9b2d555 100644 --- a/src/vmime/net/pop3/POP3Utils.hpp +++ b/src/vmime/net/pop3/POP3Utils.hpp @@ -64,7 +64,7 @@ public: * number to its corresponding data (either UID or size) */ static void parseMultiListOrUidlResponse - (shared_ptr <POP3Response> response, std::map <size_t, string>& result); + (const shared_ptr <POP3Response>& response, std::map <size_t, string>& result); /** Returns a list of message numbers given a message set. * diff --git a/src/vmime/net/sendmail/sendmailTransport.cpp b/src/vmime/net/sendmail/sendmailTransport.cpp index 822e1114..b911b129 100644 --- a/src/vmime/net/sendmail/sendmailTransport.cpp +++ b/src/vmime/net/sendmail/sendmailTransport.cpp @@ -58,7 +58,7 @@ namespace net { namespace sendmail { -sendmailTransport::sendmailTransport(shared_ptr <session> sess, shared_ptr <security::authenticator> auth) +sendmailTransport::sendmailTransport(const shared_ptr <session>& sess, const shared_ptr <security::authenticator>& auth) : transport(sess, getInfosInstance(), auth), m_connected(false) { } @@ -175,7 +175,7 @@ void sendmailTransport::send void sendmailTransport::internalSend - (const std::vector <string> args, utility::inputStream& is, + (const std::vector <string>& args, utility::inputStream& is, const size_t size, utility::progressListener* progress) { const utility::file::path path = vmime::platform::getHandler()-> diff --git a/src/vmime/net/sendmail/sendmailTransport.hpp b/src/vmime/net/sendmail/sendmailTransport.hpp index d1c6aec0..da419f95 100644 --- a/src/vmime/net/sendmail/sendmailTransport.hpp +++ b/src/vmime/net/sendmail/sendmailTransport.hpp @@ -50,7 +50,7 @@ class VMIME_EXPORT sendmailTransport : public transport { public: - sendmailTransport(shared_ptr <session> sess, shared_ptr <security::authenticator> auth); + sendmailTransport(const shared_ptr <session>& sess, const shared_ptr <security::authenticator>& auth); ~sendmailTransport(); const string getProtocolName() const; @@ -79,7 +79,7 @@ private: void internalDisconnect(); - void internalSend(const std::vector <string> args, utility::inputStream& is, + void internalSend(const std::vector <string>& args, utility::inputStream& is, const size_t size, utility::progressListener* progress); diff --git a/src/vmime/net/service.cpp b/src/vmime/net/service.cpp index 3cf94d5e..055f34fa 100644 --- a/src/vmime/net/service.cpp +++ b/src/vmime/net/service.cpp @@ -48,8 +48,8 @@ namespace vmime { namespace net { -service::service(shared_ptr <session> sess, const serviceInfos& /* infos */, - shared_ptr <security::authenticator> auth) +service::service(const shared_ptr <session>& sess, const serviceInfos& /* infos */, + const shared_ptr <security::authenticator>& auth) : m_session(sess), m_auth(auth) { if (!auth) @@ -102,7 +102,7 @@ shared_ptr <security::authenticator> service::getAuthenticator() } -void service::setAuthenticator(shared_ptr <security::authenticator> auth) +void service::setAuthenticator(const shared_ptr <security::authenticator>& auth) { m_auth = auth; } @@ -110,7 +110,7 @@ void service::setAuthenticator(shared_ptr <security::authenticator> auth) #if VMIME_HAVE_TLS_SUPPORT -void service::setCertificateVerifier(shared_ptr <security::cert::certificateVerifier> cv) +void service::setCertificateVerifier(const shared_ptr <security::cert::certificateVerifier>& cv) { m_certVerifier = cv; } @@ -124,7 +124,7 @@ shared_ptr <security::cert::certificateVerifier> service::getCertificateVerifier #endif // VMIME_HAVE_TLS_SUPPORT -void service::setSocketFactory(shared_ptr <socketFactory> sf) +void service::setSocketFactory(const shared_ptr <socketFactory>& sf) { m_socketFactory = sf; } @@ -136,7 +136,7 @@ shared_ptr <socketFactory> service::getSocketFactory() } -void service::setTracerFactory(shared_ptr <tracerFactory> tf) +void service::setTracerFactory(const shared_ptr <tracerFactory>& tf) { m_tracerFactory = tf; } @@ -148,7 +148,7 @@ shared_ptr <tracerFactory> service::getTracerFactory() } -void service::setTimeoutHandlerFactory(shared_ptr <timeoutHandlerFactory> thf) +void service::setTimeoutHandlerFactory(const shared_ptr <timeoutHandlerFactory>& thf) { m_toHandlerFactory = thf; } diff --git a/src/vmime/net/service.hpp b/src/vmime/net/service.hpp index 8d144aec..1fa120d3 100644 --- a/src/vmime/net/service.hpp +++ b/src/vmime/net/service.hpp @@ -60,7 +60,7 @@ class VMIME_EXPORT service : public object, public enable_shared_from_this <serv { protected: - service(shared_ptr <session> sess, const serviceInfos& infos, shared_ptr <security::authenticator> auth); + service(const shared_ptr <session>& sess, const serviceInfos& infos, const shared_ptr <security::authenticator>& auth); public: @@ -139,14 +139,14 @@ public: * * @param auth authenticator object */ - void setAuthenticator(shared_ptr <security::authenticator> auth); + void setAuthenticator(const shared_ptr <security::authenticator>& auth); #if VMIME_HAVE_TLS_SUPPORT /** Set the object responsible for verifying certificates when * using secured connections (TLS/SSL). */ - void setCertificateVerifier(shared_ptr <security::cert::certificateVerifier> cv); + void setCertificateVerifier(const shared_ptr <security::cert::certificateVerifier>& cv); /** Get the object responsible for verifying certificates when * using secured connections (TLS/SSL). @@ -160,7 +160,7 @@ public: * * @param sf socket factory */ - void setSocketFactory(shared_ptr <socketFactory> sf); + void setSocketFactory(const shared_ptr <socketFactory>& sf); /** Return the factory used to create socket objects for this * service. @@ -175,7 +175,7 @@ public: * * @param thf timeoutHandler factory */ - void setTimeoutHandlerFactory(shared_ptr <timeoutHandlerFactory> thf); + void setTimeoutHandlerFactory(const shared_ptr <timeoutHandlerFactory>& thf); /** Return the factory used to create timeoutHandler objects for * this service. @@ -185,7 +185,7 @@ public: shared_ptr <timeoutHandlerFactory> getTimeoutHandlerFactory(); - void setTracerFactory(shared_ptr <tracerFactory> tf); + void setTracerFactory(const shared_ptr <tracerFactory>& tf); shared_ptr <tracerFactory> getTracerFactory(); diff --git a/src/vmime/net/serviceFactory.cpp b/src/vmime/net/serviceFactory.cpp index b6f90eb2..dc129c63 100644 --- a/src/vmime/net/serviceFactory.cpp +++ b/src/vmime/net/serviceFactory.cpp @@ -57,8 +57,8 @@ shared_ptr <serviceFactory> serviceFactory::getInstance() shared_ptr <service> serviceFactory::create - (shared_ptr <session> sess, const string& protocol, - shared_ptr <security::authenticator> auth) + (const shared_ptr <session>& sess, const string& protocol, + const shared_ptr <security::authenticator>& auth) { shared_ptr <const registeredService> rserv = getServiceByProtocol(protocol); @@ -70,8 +70,8 @@ shared_ptr <service> serviceFactory::create shared_ptr <service> serviceFactory::create - (shared_ptr <session> sess, const utility::url& u, - shared_ptr <security::authenticator> auth) + (const shared_ptr <session>& sess, const utility::url& u, + const shared_ptr <security::authenticator>& auth) { shared_ptr <service> serv = create(sess, u.getProtocol(), auth); @@ -136,7 +136,7 @@ const std::vector <shared_ptr <const serviceFactory::registeredService> > servic } -void serviceFactory::registerService(shared_ptr <registeredService> reg) +void serviceFactory::registerService(const shared_ptr <registeredService>& reg) { m_services.push_back(reg); } diff --git a/src/vmime/net/serviceFactory.hpp b/src/vmime/net/serviceFactory.hpp index 9295b345..cb778b91 100644 --- a/src/vmime/net/serviceFactory.hpp +++ b/src/vmime/net/serviceFactory.hpp @@ -81,8 +81,8 @@ public: public: virtual shared_ptr <service> create - (shared_ptr <session> sess, - shared_ptr <security::authenticator> auth) const = 0; + (const shared_ptr <session>& sess, + const shared_ptr <security::authenticator>& auth) const = 0; virtual int getType() const = 0; virtual const string& getName() const = 0; @@ -94,7 +94,7 @@ public: * * @param reg service registration infos */ - void registerService(shared_ptr <registeredService> reg); + void registerService(const shared_ptr <registeredService>& reg); /** Create a new service instance from a protocol name. * @@ -105,9 +105,9 @@ public: * is registered for this protocol */ shared_ptr <service> create - (shared_ptr <session> sess, + (const shared_ptr <session>& sess, const string& protocol, - shared_ptr <security::authenticator> auth = null); + const shared_ptr <security::authenticator>& auth = null); /** Create a new service instance from a URL. * @@ -119,9 +119,9 @@ public: * is registered for this protocol */ shared_ptr <service> create - (shared_ptr <session> sess, + (const shared_ptr <session>& sess, const utility::url& u, - shared_ptr <security::authenticator> auth = null); + const shared_ptr <security::authenticator>& auth = null); /** Return information about a registered protocol. * diff --git a/src/vmime/net/serviceInfos.cpp b/src/vmime/net/serviceInfos.cpp index c5d0124a..b3fa7d03 100644 --- a/src/vmime/net/serviceInfos.cpp +++ b/src/vmime/net/serviceInfos.cpp @@ -88,7 +88,7 @@ serviceInfos::~serviceInfos() } -bool serviceInfos::hasProperty(shared_ptr <session> s, const property& p) const +bool serviceInfos::hasProperty(const shared_ptr <session>& s, const property& p) const { return s->getProperties().hasProperty(getPropertyPrefix() + p.getName()); } diff --git a/src/vmime/net/serviceInfos.hpp b/src/vmime/net/serviceInfos.hpp index 5c3909b2..63261867 100644 --- a/src/vmime/net/serviceInfos.hpp +++ b/src/vmime/net/serviceInfos.hpp @@ -221,7 +221,7 @@ public: * @return value of the property */ template <typename TYPE> - const TYPE getPropertyValue(shared_ptr <session> s, const property& p) const + const TYPE getPropertyValue(const shared_ptr <session>& s, const property& p) const { if (p.getFlags() & property::FLAG_REQUIRED) return s->getProperties()[getPropertyPrefix() + p.getName()].template getValue <TYPE>(); @@ -237,7 +237,7 @@ public: * @param p property to test * @return true if the property is set, false otherwise */ - bool hasProperty(shared_ptr <session> s, const property& p) const; + bool hasProperty(const shared_ptr <session>& s, const property& p) const; }; diff --git a/src/vmime/net/serviceRegistration.inl b/src/vmime/net/serviceRegistration.inl index 2366fe01..5a897594 100644 --- a/src/vmime/net/serviceRegistration.inl +++ b/src/vmime/net/serviceRegistration.inl @@ -42,8 +42,8 @@ public: } shared_ptr <service> create - (shared_ptr <session> sess, - shared_ptr <security::authenticator> auth) const + (const shared_ptr <session>& sess, + const shared_ptr <security::authenticator>& auth) const { return make_shared <S>(sess, auth); } diff --git a/src/vmime/net/session.cpp b/src/vmime/net/session.cpp index 7e335899..9da2fc69 100644 --- a/src/vmime/net/session.cpp +++ b/src/vmime/net/session.cpp @@ -78,14 +78,14 @@ shared_ptr <session> session::create(const propertySet& props) } -shared_ptr <transport> session::getTransport(shared_ptr <security::authenticator> auth) +shared_ptr <transport> session::getTransport(const shared_ptr <security::authenticator>& auth) { return (getTransport(m_props["transport.protocol"], auth)); } shared_ptr <transport> session::getTransport - (const string& protocol, shared_ptr <security::authenticator> auth) + (const string& protocol, const shared_ptr <security::authenticator>& auth) { shared_ptr <session> sess(dynamicCast <session>(shared_from_this())); shared_ptr <service> sv = serviceFactory::getInstance()->create(sess, protocol, auth); @@ -98,7 +98,7 @@ shared_ptr <transport> session::getTransport shared_ptr <transport> session::getTransport - (const utility::url& url, shared_ptr <security::authenticator> auth) + (const utility::url& url, const shared_ptr <security::authenticator>& auth) { shared_ptr <session> sess(dynamicCast <session>(shared_from_this())); shared_ptr <service> sv = serviceFactory::getInstance()->create(sess, url, auth); @@ -110,14 +110,14 @@ shared_ptr <transport> session::getTransport } -shared_ptr <store> session::getStore(shared_ptr <security::authenticator> auth) +shared_ptr <store> session::getStore(const shared_ptr <security::authenticator>& auth) { return (getStore(m_props["store.protocol"], auth)); } shared_ptr <store> session::getStore - (const string& protocol, shared_ptr <security::authenticator> auth) + (const string& protocol, const shared_ptr <security::authenticator>& auth) { shared_ptr <session> sess(dynamicCast <session>(shared_from_this())); shared_ptr <service> sv = serviceFactory::getInstance()->create(sess, protocol, auth); @@ -130,7 +130,7 @@ shared_ptr <store> session::getStore shared_ptr <store> session::getStore - (const utility::url& url, shared_ptr <security::authenticator> auth) + (const utility::url& url, const shared_ptr <security::authenticator>& auth) { shared_ptr <session> sess(dynamicCast <session>(shared_from_this())); shared_ptr <service> sv = serviceFactory::getInstance()->create(sess, url, auth); @@ -156,7 +156,7 @@ propertySet& session::getProperties() #if VMIME_HAVE_TLS_SUPPORT -void session::setTLSProperties(shared_ptr <tls::TLSProperties> tlsProps) +void session::setTLSProperties(const shared_ptr <tls::TLSProperties>& tlsProps) { m_tlsProps = make_shared <tls::TLSProperties>(*tlsProps); } diff --git a/src/vmime/net/session.hpp b/src/vmime/net/session.hpp index 3165e1ce..75858ef2 100644 --- a/src/vmime/net/session.hpp +++ b/src/vmime/net/session.hpp @@ -85,7 +85,7 @@ public: * protocol or is not a transport protocol */ shared_ptr <transport> getTransport - (shared_ptr <security::authenticator> auth = null); + (const shared_ptr <security::authenticator>& auth = null); /** Return a transport service instance for the specified protocol. * @@ -98,7 +98,7 @@ public: */ shared_ptr <transport> getTransport (const string& protocol, - shared_ptr <security::authenticator> auth = null); + const shared_ptr <security::authenticator>& auth = null); /** Return a transport service instance for the specified URL. * @@ -111,7 +111,7 @@ public: */ shared_ptr <transport> getTransport (const utility::url& url, - shared_ptr <security::authenticator> auth = null); + const shared_ptr <security::authenticator>& auth = null); /** Return a transport service instance for the protocol specified * in the session properties. @@ -124,7 +124,7 @@ public: * @return a new store service, or NULL if no service is registered for this * protocol or is not a store protocol */ - shared_ptr <store> getStore(shared_ptr <security::authenticator> auth = null); + shared_ptr <store> getStore(const shared_ptr <security::authenticator>& auth = null); /** Return a store service instance for the specified protocol. * @@ -137,7 +137,7 @@ public: */ shared_ptr <store> getStore (const string& protocol, - shared_ptr <security::authenticator> auth = null); + const shared_ptr <security::authenticator>& auth = null); /** Return a store service instance for the specified URL. * @@ -150,7 +150,7 @@ public: */ shared_ptr <store> getStore (const utility::url& url, - shared_ptr <security::authenticator> auth = null); + const shared_ptr <security::authenticator>& auth = null); /** Properties for the session and for the services. */ @@ -166,7 +166,7 @@ public: * * @param tlsProps SSL/TLS properties */ - void setTLSProperties(shared_ptr <tls::TLSProperties> tlsProps); + void setTLSProperties(const shared_ptr <tls::TLSProperties>& tlsProps); /** Get properties for SSL/TLS secured connections in this session. * diff --git a/src/vmime/net/smtp/SMTPChunkingOutputStreamAdapter.cpp b/src/vmime/net/smtp/SMTPChunkingOutputStreamAdapter.cpp index f6ecc54d..d1d58e4c 100644 --- a/src/vmime/net/smtp/SMTPChunkingOutputStreamAdapter.cpp +++ b/src/vmime/net/smtp/SMTPChunkingOutputStreamAdapter.cpp @@ -41,7 +41,7 @@ namespace smtp { SMTPChunkingOutputStreamAdapter::SMTPChunkingOutputStreamAdapter - (shared_ptr <SMTPConnection> conn, const size_t size, utility::progressListener* progress) + (const shared_ptr <SMTPConnection>& conn, const size_t size, utility::progressListener* progress) : m_connection(conn), m_bufferSize(0), m_chunkCount(0), m_totalSize(size), m_totalSent(0), m_progress(progress) { diff --git a/src/vmime/net/smtp/SMTPChunkingOutputStreamAdapter.hpp b/src/vmime/net/smtp/SMTPChunkingOutputStreamAdapter.hpp index 56d72fb1..7bda1e73 100644 --- a/src/vmime/net/smtp/SMTPChunkingOutputStreamAdapter.hpp +++ b/src/vmime/net/smtp/SMTPChunkingOutputStreamAdapter.hpp @@ -49,7 +49,7 @@ class VMIME_EXPORT SMTPChunkingOutputStreamAdapter : public utility::outputStrea { public: - SMTPChunkingOutputStreamAdapter(shared_ptr <SMTPConnection> conn, + SMTPChunkingOutputStreamAdapter(const shared_ptr <SMTPConnection>& conn, const size_t size, utility::progressListener* progress); void flush(); diff --git a/src/vmime/net/smtp/SMTPCommand.cpp b/src/vmime/net/smtp/SMTPCommand.cpp index 27c8ec1b..acf59830 100644 --- a/src/vmime/net/smtp/SMTPCommand.cpp +++ b/src/vmime/net/smtp/SMTPCommand.cpp @@ -221,7 +221,7 @@ const string SMTPCommand::getTraceText() const } -void SMTPCommand::writeToSocket(shared_ptr <socket> sok, shared_ptr <tracer> tr) +void SMTPCommand::writeToSocket(const shared_ptr <socket>& sok, shared_ptr <tracer> tr) { sok->send(m_text + "\r\n"); diff --git a/src/vmime/net/smtp/SMTPCommand.hpp b/src/vmime/net/smtp/SMTPCommand.hpp index 7c00d156..bb52dbc4 100644 --- a/src/vmime/net/smtp/SMTPCommand.hpp +++ b/src/vmime/net/smtp/SMTPCommand.hpp @@ -84,7 +84,7 @@ public: * @param sok socket to which the command will be written * @param tr tracer */ - virtual void writeToSocket(shared_ptr <socket> sok, shared_ptr <tracer> tr); + virtual void writeToSocket(const shared_ptr <socket>& sok, shared_ptr <tracer> tr); /** Returns the full text of the command, including command name * and parameters (if any). diff --git a/src/vmime/net/smtp/SMTPCommandSet.cpp b/src/vmime/net/smtp/SMTPCommandSet.cpp index 85f58fed..425b3535 100644 --- a/src/vmime/net/smtp/SMTPCommandSet.cpp +++ b/src/vmime/net/smtp/SMTPCommandSet.cpp @@ -55,7 +55,7 @@ shared_ptr <SMTPCommandSet> SMTPCommandSet::create(const bool pipeline) } -void SMTPCommandSet::addCommand(shared_ptr <SMTPCommand> cmd) +void SMTPCommandSet::addCommand(const shared_ptr <SMTPCommand>& cmd) { if (m_started) { @@ -67,7 +67,7 @@ void SMTPCommandSet::addCommand(shared_ptr <SMTPCommand> cmd) } -void SMTPCommandSet::writeToSocket(shared_ptr <socket> sok, shared_ptr <tracer> tr) +void SMTPCommandSet::writeToSocket(const shared_ptr <socket>& sok, const shared_ptr <tracer>& tr) { if (m_pipeline) { diff --git a/src/vmime/net/smtp/SMTPCommandSet.hpp b/src/vmime/net/smtp/SMTPCommandSet.hpp index 83c7fe46..af69366e 100644 --- a/src/vmime/net/smtp/SMTPCommandSet.hpp +++ b/src/vmime/net/smtp/SMTPCommandSet.hpp @@ -61,7 +61,7 @@ public: * * @param cmd command to add */ - void addCommand(shared_ptr <SMTPCommand> cmd); + void addCommand(const shared_ptr <SMTPCommand>& cmd); /** Tests whether all commands have been sent. * @@ -78,7 +78,7 @@ public: shared_ptr <SMTPCommand> getLastCommandSent() const; - void writeToSocket(shared_ptr <socket> sok, shared_ptr <tracer> tr); + void writeToSocket(const shared_ptr <socket>& sok, const shared_ptr <tracer>& tr); const string getText() const; const string getTraceText() const; diff --git a/src/vmime/net/smtp/SMTPConnection.cpp b/src/vmime/net/smtp/SMTPConnection.cpp index 8709efe4..cad107cb 100644 --- a/src/vmime/net/smtp/SMTPConnection.cpp +++ b/src/vmime/net/smtp/SMTPConnection.cpp @@ -67,7 +67,7 @@ namespace smtp { -SMTPConnection::SMTPConnection(shared_ptr <SMTPTransport> transport, shared_ptr <security::authenticator> auth) +SMTPConnection::SMTPConnection(const shared_ptr <SMTPTransport>& transport, const shared_ptr <security::authenticator>& auth) : m_transport(transport), m_auth(auth), m_socket(null), m_timeoutHandler(null), m_authenticated(false), m_secured(false), m_extendedSMTP(false) { @@ -605,7 +605,7 @@ void SMTPConnection::internalDisconnect() } -void SMTPConnection::sendRequest(shared_ptr <SMTPCommand> cmd) +void SMTPConnection::sendRequest(const shared_ptr <SMTPCommand>& cmd) { cmd->writeToSocket(m_socket, m_tracer); } diff --git a/src/vmime/net/smtp/SMTPConnection.hpp b/src/vmime/net/smtp/SMTPConnection.hpp index c7614920..50f5daf2 100644 --- a/src/vmime/net/smtp/SMTPConnection.hpp +++ b/src/vmime/net/smtp/SMTPConnection.hpp @@ -65,7 +65,7 @@ class VMIME_EXPORT SMTPConnection : public object { public: - SMTPConnection(shared_ptr <SMTPTransport> transport, shared_ptr <security::authenticator> auth); + SMTPConnection(const shared_ptr <SMTPTransport>& transport, const shared_ptr <security::authenticator>& auth); virtual ~SMTPConnection(); @@ -83,7 +83,7 @@ public: virtual shared_ptr <session> getSession(); virtual shared_ptr <tracer> getTracer(); - void sendRequest(shared_ptr <SMTPCommand> cmd); + void sendRequest(const shared_ptr <SMTPCommand>& cmd); shared_ptr <SMTPResponse> readResponse(); bool hasExtension(const std::string& extName, std::vector <string>* params = NULL) const; diff --git a/src/vmime/net/smtp/SMTPResponse.cpp b/src/vmime/net/smtp/SMTPResponse.cpp index b4b2c542..d1c25cf8 100644 --- a/src/vmime/net/smtp/SMTPResponse.cpp +++ b/src/vmime/net/smtp/SMTPResponse.cpp @@ -45,8 +45,8 @@ namespace smtp { SMTPResponse::SMTPResponse - (shared_ptr <tracer> tr, shared_ptr <socket> sok, - shared_ptr <timeoutHandler> toh, const state& st) + (const shared_ptr <tracer>& tr, const shared_ptr <socket>& sok, + const shared_ptr <timeoutHandler>& toh, const state& st) : m_socket(sok), m_timeoutHandler(toh), m_tracer(tr), m_responseBuffer(st.responseBuffer), m_responseContinues(false) { @@ -98,8 +98,8 @@ const string SMTPResponse::getText() const // static shared_ptr <SMTPResponse> SMTPResponse::readResponse - (shared_ptr <tracer> tr, shared_ptr <socket> sok, - shared_ptr <timeoutHandler> toh, const state& st) + (const shared_ptr <tracer>& tr, const shared_ptr <socket>& sok, + const shared_ptr <timeoutHandler>& toh, const state& st) { shared_ptr <SMTPResponse> resp = shared_ptr <SMTPResponse>(new SMTPResponse(tr, sok, toh, st)); diff --git a/src/vmime/net/smtp/SMTPResponse.hpp b/src/vmime/net/smtp/SMTPResponse.hpp index 4d88b6b5..fa19a1db 100644 --- a/src/vmime/net/smtp/SMTPResponse.hpp +++ b/src/vmime/net/smtp/SMTPResponse.hpp @@ -105,8 +105,8 @@ public: * has been received within the granted time */ static shared_ptr <SMTPResponse> readResponse - (shared_ptr <tracer> tr, shared_ptr <socket> sok, - shared_ptr <timeoutHandler> toh, const state& st); + (const shared_ptr <tracer>& tr, const shared_ptr <socket>& sok, + const shared_ptr <timeoutHandler>& toh, const state& st); /** Return the SMTP response code. * @@ -154,7 +154,7 @@ public: private: - SMTPResponse(shared_ptr <tracer> tr, shared_ptr <socket> sok, shared_ptr <timeoutHandler> toh, const state& st); + SMTPResponse(const shared_ptr <tracer>& tr, const shared_ptr <socket>& sok, const shared_ptr <timeoutHandler>& toh, const state& st); SMTPResponse(const SMTPResponse&); void readResponse(); diff --git a/src/vmime/net/smtp/SMTPSTransport.cpp b/src/vmime/net/smtp/SMTPSTransport.cpp index ab64d49d..1a8a0804 100644 --- a/src/vmime/net/smtp/SMTPSTransport.cpp +++ b/src/vmime/net/smtp/SMTPSTransport.cpp @@ -35,7 +35,7 @@ namespace net { namespace smtp { -SMTPSTransport::SMTPSTransport(shared_ptr <session> sess, shared_ptr <security::authenticator> auth) +SMTPSTransport::SMTPSTransport(const shared_ptr <session>& sess, const shared_ptr <security::authenticator>& auth) : SMTPTransport(sess, auth, true) { } diff --git a/src/vmime/net/smtp/SMTPSTransport.hpp b/src/vmime/net/smtp/SMTPSTransport.hpp index 7782f711..52dce1f2 100644 --- a/src/vmime/net/smtp/SMTPSTransport.hpp +++ b/src/vmime/net/smtp/SMTPSTransport.hpp @@ -46,7 +46,7 @@ class VMIME_EXPORT SMTPSTransport : public SMTPTransport { public: - SMTPSTransport(shared_ptr <session> sess, shared_ptr <security::authenticator> auth); + SMTPSTransport(const shared_ptr <session>& sess, const shared_ptr <security::authenticator>& auth); ~SMTPSTransport(); const string getProtocolName() const; diff --git a/src/vmime/net/smtp/SMTPTransport.cpp b/src/vmime/net/smtp/SMTPTransport.cpp index 25eb72a7..27afcf6f 100644 --- a/src/vmime/net/smtp/SMTPTransport.cpp +++ b/src/vmime/net/smtp/SMTPTransport.cpp @@ -51,7 +51,7 @@ namespace net { namespace smtp { -SMTPTransport::SMTPTransport(shared_ptr <session> sess, shared_ptr <security::authenticator> auth, const bool secured) +SMTPTransport::SMTPTransport(const shared_ptr <session>& sess, const shared_ptr <security::authenticator>& auth, const bool secured) : transport(sess, getInfosInstance(), auth), m_isSMTPS(secured), m_needReset(false) { } @@ -377,7 +377,7 @@ void SMTPTransport::send void SMTPTransport::send - (shared_ptr <vmime::message> msg, const mailbox& expeditor, const mailboxList& recipients, + (const shared_ptr <vmime::message>& msg, const mailbox& expeditor, const mailboxList& recipients, utility::progressListener* progress, const mailbox& sender) { if (!isConnected()) diff --git a/src/vmime/net/smtp/SMTPTransport.hpp b/src/vmime/net/smtp/SMTPTransport.hpp index 7b266d3d..a5f15ca6 100644 --- a/src/vmime/net/smtp/SMTPTransport.hpp +++ b/src/vmime/net/smtp/SMTPTransport.hpp @@ -54,7 +54,7 @@ class VMIME_EXPORT SMTPTransport : public transport { public: - SMTPTransport(shared_ptr <session> sess, shared_ptr <security::authenticator> auth, const bool secured = false); + SMTPTransport(const shared_ptr <session>& sess, const shared_ptr <security::authenticator>& auth, const bool secured = false); ~SMTPTransport(); const string getProtocolName() const; @@ -77,7 +77,7 @@ public: const mailbox& sender = mailbox()); void send - (shared_ptr <vmime::message> msg, + (const shared_ptr <vmime::message>& msg, const mailbox& expeditor, const mailboxList& recipients, utility::progressListener* progress = NULL, diff --git a/src/vmime/net/socket.hpp b/src/vmime/net/socket.hpp index 2de83dd1..4de45ca9 100644 --- a/src/vmime/net/socket.hpp +++ b/src/vmime/net/socket.hpp @@ -175,7 +175,7 @@ public: * * @param tracer tracer to use */ - virtual void setTracer(shared_ptr <tracer> tracer) = 0; + virtual void setTracer(const shared_ptr <tracer>& tracer) = 0; /** Return the tracer used by this socket. * @@ -213,7 +213,7 @@ public: * @param th timeout handler * @return a new socket */ - virtual shared_ptr <socket> create(shared_ptr <timeoutHandler> th) = 0; + virtual shared_ptr <socket> create(const shared_ptr <timeoutHandler>& th) = 0; }; diff --git a/src/vmime/net/store.hpp b/src/vmime/net/store.hpp index 37dcadbc..dfeb9a53 100644 --- a/src/vmime/net/store.hpp +++ b/src/vmime/net/store.hpp @@ -47,7 +47,7 @@ class VMIME_EXPORT store : public service { protected: - store(shared_ptr <session> sess, const serviceInfos& infos, shared_ptr <security::authenticator> auth) + store(const shared_ptr <session>& sess, const serviceInfos& infos, const shared_ptr <security::authenticator>& auth) : service(sess, infos, auth) { } public: diff --git a/src/vmime/net/tls/TLSSecuredConnectionInfos.cpp b/src/vmime/net/tls/TLSSecuredConnectionInfos.cpp index 4856e9af..45b9527e 100644 --- a/src/vmime/net/tls/TLSSecuredConnectionInfos.cpp +++ b/src/vmime/net/tls/TLSSecuredConnectionInfos.cpp @@ -38,7 +38,7 @@ namespace tls { TLSSecuredConnectionInfos::TLSSecuredConnectionInfos (const string& host, const port_t port, - shared_ptr <TLSSession> tlsSession, shared_ptr <TLSSocket> tlsSocket) + const shared_ptr <TLSSession>& tlsSession, const shared_ptr <TLSSocket>& tlsSocket) : m_host(host), m_port(port), m_tlsSession(tlsSession), m_tlsSocket(tlsSocket) { diff --git a/src/vmime/net/tls/TLSSecuredConnectionInfos.hpp b/src/vmime/net/tls/TLSSecuredConnectionInfos.hpp index e552d6f9..19e7a064 100644 --- a/src/vmime/net/tls/TLSSecuredConnectionInfos.hpp +++ b/src/vmime/net/tls/TLSSecuredConnectionInfos.hpp @@ -52,7 +52,7 @@ class VMIME_EXPORT TLSSecuredConnectionInfos : public securedConnectionInfos public: TLSSecuredConnectionInfos(const string& host, const port_t port, - shared_ptr <TLSSession> tlsSession, shared_ptr <TLSSocket> tlsSocket); + const shared_ptr <TLSSession>& tlsSession, const shared_ptr <TLSSocket>& tlsSocket); const string getHost() const; port_t getPort() const; diff --git a/src/vmime/net/tls/TLSSession.hpp b/src/vmime/net/tls/TLSSession.hpp index 8951ffa4..83a1623c 100644 --- a/src/vmime/net/tls/TLSSession.hpp +++ b/src/vmime/net/tls/TLSSession.hpp @@ -57,7 +57,7 @@ public: * @param props TLS properties for this session * @return a new TLS session */ - static shared_ptr <TLSSession> create(shared_ptr <security::cert::certificateVerifier> cv, shared_ptr <TLSProperties> props); + static shared_ptr <TLSSession> create(const shared_ptr <security::cert::certificateVerifier>& cv, const shared_ptr <TLSProperties>& props); /** Create a new socket that adds a TLS security layer around * an existing socket. You should create only one socket @@ -66,7 +66,7 @@ public: * @param sok socket to wrap * @return TLS socket wrapper */ - virtual shared_ptr <TLSSocket> getSocket(shared_ptr <socket> sok) = 0; + virtual shared_ptr <TLSSocket> getSocket(const shared_ptr <socket>& sok) = 0; /** Get the object responsible for verifying certificates when * using secured connections (TLS/SSL). diff --git a/src/vmime/net/tls/TLSSocket.hpp b/src/vmime/net/tls/TLSSocket.hpp index be27d1d0..75b80116 100644 --- a/src/vmime/net/tls/TLSSocket.hpp +++ b/src/vmime/net/tls/TLSSocket.hpp @@ -59,7 +59,7 @@ public: * @param session TLS session * @param sok socket to wrap */ - static shared_ptr <TLSSocket> wrap(shared_ptr <TLSSession> session, shared_ptr <socket> sok); + static shared_ptr <TLSSocket> wrap(const shared_ptr <TLSSession>& session, const shared_ptr <socket>& sok); /** Starts a TLS handshake on this connection. * diff --git a/src/vmime/net/tls/gnutls/TLSSession_GnuTLS.cpp b/src/vmime/net/tls/gnutls/TLSSession_GnuTLS.cpp index 2a6450eb..dccfb5ec 100644 --- a/src/vmime/net/tls/gnutls/TLSSession_GnuTLS.cpp +++ b/src/vmime/net/tls/gnutls/TLSSession_GnuTLS.cpp @@ -134,13 +134,13 @@ static TLSGlobal g_gnutlsGlobal; // static -shared_ptr <TLSSession> TLSSession::create(shared_ptr <security::cert::certificateVerifier> cv, shared_ptr <TLSProperties> props) +shared_ptr <TLSSession> TLSSession::create(const shared_ptr <security::cert::certificateVerifier>& cv, const shared_ptr <TLSProperties>& props) { return make_shared <TLSSession_GnuTLS>(cv, props); } -TLSSession_GnuTLS::TLSSession_GnuTLS(shared_ptr <security::cert::certificateVerifier> cv, shared_ptr <TLSProperties> props) +TLSSession_GnuTLS::TLSSession_GnuTLS(const shared_ptr <security::cert::certificateVerifier>& cv, const shared_ptr <TLSProperties>& props) : m_certVerifier(cv), m_props(props) { int res; @@ -274,7 +274,7 @@ TLSSession_GnuTLS::~TLSSession_GnuTLS() } -shared_ptr <TLSSocket> TLSSession_GnuTLS::getSocket(shared_ptr <socket> sok) +shared_ptr <TLSSocket> TLSSession_GnuTLS::getSocket(const shared_ptr <socket>& sok) { return TLSSocket::wrap(dynamicCast <TLSSession>(shared_from_this()), sok); } diff --git a/src/vmime/net/tls/gnutls/TLSSession_GnuTLS.hpp b/src/vmime/net/tls/gnutls/TLSSession_GnuTLS.hpp index 14172ee0..dd096ff3 100644 --- a/src/vmime/net/tls/gnutls/TLSSession_GnuTLS.hpp +++ b/src/vmime/net/tls/gnutls/TLSSession_GnuTLS.hpp @@ -52,11 +52,11 @@ class TLSSession_GnuTLS : public TLSSession public: - TLSSession_GnuTLS(shared_ptr <security::cert::certificateVerifier> cv, shared_ptr <TLSProperties> props); + TLSSession_GnuTLS(const shared_ptr <security::cert::certificateVerifier>& cv, const shared_ptr <TLSProperties>& props); ~TLSSession_GnuTLS(); - shared_ptr <TLSSocket> getSocket(shared_ptr <socket> sok); + shared_ptr <TLSSocket> getSocket(const shared_ptr <socket>& sok); shared_ptr <security::cert::certificateVerifier> getCertificateVerifier(); diff --git a/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.cpp b/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.cpp index 16dabb66..31753590 100644 --- a/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.cpp +++ b/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.cpp @@ -50,14 +50,14 @@ namespace tls { // static -shared_ptr <TLSSocket> TLSSocket::wrap(shared_ptr <TLSSession> session, shared_ptr <socket> sok) +shared_ptr <TLSSocket> TLSSocket::wrap(const shared_ptr <TLSSession>& session, const shared_ptr <socket>& sok) { return make_shared <TLSSocket_GnuTLS> (dynamicCast <TLSSession_GnuTLS>(session), sok); } -TLSSocket_GnuTLS::TLSSocket_GnuTLS(shared_ptr <TLSSession_GnuTLS> session, shared_ptr <socket> sok) +TLSSocket_GnuTLS::TLSSocket_GnuTLS(const shared_ptr <TLSSession_GnuTLS>& session, const shared_ptr <socket>& sok) : m_session(session), m_wrapped(sok), m_connected(false), m_ex(NULL), m_status(0), m_errno(0) { @@ -143,7 +143,7 @@ shared_ptr <timeoutHandler> TLSSocket_GnuTLS::getTimeoutHandler() } -void TLSSocket_GnuTLS::setTracer(shared_ptr <net::tracer> tracer) +void TLSSocket_GnuTLS::setTracer(const shared_ptr <net::tracer>& tracer) { m_wrapped->setTracer(tracer); } diff --git a/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.hpp b/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.hpp index 931cb993..a1d78e99 100644 --- a/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.hpp +++ b/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.hpp @@ -50,7 +50,7 @@ class TLSSocket_GnuTLS : public TLSSocket { public: - TLSSocket_GnuTLS(shared_ptr <TLSSession_GnuTLS> session, shared_ptr <socket> sok); + TLSSocket_GnuTLS(const shared_ptr <TLSSession_GnuTLS>& session, const shared_ptr <socket>& sok); ~TLSSocket_GnuTLS(); @@ -83,7 +83,7 @@ public: shared_ptr <timeoutHandler> getTimeoutHandler(); - void setTracer(shared_ptr <net::tracer> tracer); + void setTracer(const shared_ptr <net::tracer>& tracer); shared_ptr <net::tracer> getTracer(); private: diff --git a/src/vmime/net/tls/openssl/TLSSession_OpenSSL.cpp b/src/vmime/net/tls/openssl/TLSSession_OpenSSL.cpp index 7892de65..961f6517 100644 --- a/src/vmime/net/tls/openssl/TLSSession_OpenSSL.cpp +++ b/src/vmime/net/tls/openssl/TLSSession_OpenSSL.cpp @@ -46,13 +46,13 @@ static OpenSSLInitializer::autoInitializer openSSLInitializer; // static -shared_ptr <TLSSession> TLSSession::create(shared_ptr <security::cert::certificateVerifier> cv, shared_ptr <TLSProperties> props) +shared_ptr <TLSSession> TLSSession::create(const shared_ptr <security::cert::certificateVerifier>& cv, const shared_ptr <TLSProperties>& props) { return make_shared <TLSSession_OpenSSL>(cv, props); } -TLSSession_OpenSSL::TLSSession_OpenSSL(shared_ptr <vmime::security::cert::certificateVerifier> cv, shared_ptr <TLSProperties> props) +TLSSession_OpenSSL::TLSSession_OpenSSL(const shared_ptr <vmime::security::cert::certificateVerifier>& cv, const shared_ptr <TLSProperties>& props) : m_sslctx(0), m_certVerifier(cv), m_props(props) { m_sslctx = SSL_CTX_new(SSLv23_client_method()); @@ -76,7 +76,7 @@ TLSSession_OpenSSL::~TLSSession_OpenSSL() } -shared_ptr <TLSSocket> TLSSession_OpenSSL::getSocket(shared_ptr <socket> sok) +shared_ptr <TLSSocket> TLSSession_OpenSSL::getSocket(const shared_ptr <socket>& sok) { return TLSSocket::wrap(dynamicCast <TLSSession>(shared_from_this()), sok); } diff --git a/src/vmime/net/tls/openssl/TLSSession_OpenSSL.hpp b/src/vmime/net/tls/openssl/TLSSession_OpenSSL.hpp index 5a2b60a8..c5c5da39 100644 --- a/src/vmime/net/tls/openssl/TLSSession_OpenSSL.hpp +++ b/src/vmime/net/tls/openssl/TLSSession_OpenSSL.hpp @@ -55,11 +55,11 @@ class TLSSession_OpenSSL : public TLSSession public: - TLSSession_OpenSSL(const shared_ptr <security::cert::certificateVerifier> cv, shared_ptr <TLSProperties> props); + TLSSession_OpenSSL(const shared_ptr <security::cert::certificateVerifier>& cv, const shared_ptr <TLSProperties>& props); ~TLSSession_OpenSSL(); - shared_ptr <TLSSocket> getSocket(shared_ptr <socket> sok); + shared_ptr <TLSSocket> getSocket(const shared_ptr <socket>& sok); shared_ptr <security::cert::certificateVerifier> getCertificateVerifier(); diff --git a/src/vmime/net/tls/openssl/TLSSocket_OpenSSL.cpp b/src/vmime/net/tls/openssl/TLSSocket_OpenSSL.cpp index a663f196..afc7e514 100644 --- a/src/vmime/net/tls/openssl/TLSSocket_OpenSSL.cpp +++ b/src/vmime/net/tls/openssl/TLSSocket_OpenSSL.cpp @@ -52,6 +52,8 @@ namespace tls { static OpenSSLInitializer::autoInitializer openSSLInitializer; +#if OPENSSL_VERSION_NUMBER < 0x10100000L + // static BIO_METHOD TLSSocket_OpenSSL::sm_customBIOMethod = { @@ -67,16 +69,32 @@ BIO_METHOD TLSSocket_OpenSSL::sm_customBIOMethod = 0 }; +#define BIO_set_init(b, val) b->init = val +#define BIO_set_data(b, val) b->ptr = val +#define BIO_set_num(b, val) b->num = val +#define BIO_set_flags(b, val) b->flags = val +#define BIO_set_shutdown(b, val) b->shutdown = val +#define BIO_get_init(b) b->init +#define BIO_get_data(b) b->ptr +#define BIO_get_shutdown(b) b->shutdown + +#else + +#define BIO_set_num(b, val) + +#endif + + // static -shared_ptr <TLSSocket> TLSSocket::wrap(shared_ptr <TLSSession> session, shared_ptr <socket> sok) +shared_ptr <TLSSocket> TLSSocket::wrap(const shared_ptr <TLSSession>& session, const shared_ptr <socket>& sok) { return make_shared <TLSSocket_OpenSSL> (dynamicCast <TLSSession_OpenSSL>(session), sok); } -TLSSocket_OpenSSL::TLSSocket_OpenSSL(shared_ptr <TLSSession_OpenSSL> session, shared_ptr <socket> sok) +TLSSocket_OpenSSL::TLSSocket_OpenSSL(const shared_ptr <TLSSession_OpenSSL>& session, const shared_ptr <socket>& sok) : m_session(session), m_wrapped(sok), m_connected(false), m_ssl(0), m_status(0), m_ex() { } @@ -99,10 +117,41 @@ void TLSSocket_OpenSSL::createSSLHandle() { if (m_wrapped->isConnected()) { + +#if OPENSSL_VERSION_NUMBER < 0x10100000L + BIO* sockBio = BIO_new(&sm_customBIOMethod); sockBio->ptr = this; sockBio->init = 1; +#else + + BIO_METHOD* bioMeth = BIO_meth_new(BIO_TYPE_SOURCE_SINK | BIO_get_new_index(), "vmime::socket glue"); + + if (!bioMeth) + { + BIO_meth_free(bioMeth); + throw exceptions::tls_exception("BIO_meth_new() failed"); + } + + BIO_meth_set_write(bioMeth, TLSSocket_OpenSSL::bio_write); + BIO_meth_set_read(bioMeth, TLSSocket_OpenSSL::bio_read); + BIO_meth_set_puts(bioMeth, TLSSocket_OpenSSL::bio_puts); + BIO_meth_set_ctrl(bioMeth, TLSSocket_OpenSSL::bio_ctrl); + BIO_meth_set_create(bioMeth, TLSSocket_OpenSSL::bio_create); + BIO_meth_set_destroy(bioMeth, TLSSocket_OpenSSL::bio_destroy); + + BIO* sockBio = BIO_new(bioMeth); + BIO_set_data(sockBio, this); + BIO_set_init(sockBio, 1); + +#endif + + if (!sockBio) + { + throw exceptions::tls_exception("BIO_new() failed"); + } + m_ssl = SSL_new(m_session->getContext()); if (!m_ssl) @@ -193,7 +242,7 @@ shared_ptr <timeoutHandler> TLSSocket_OpenSSL::getTimeoutHandler() } -void TLSSocket_OpenSSL::setTracer(shared_ptr <net::tracer> tracer) +void TLSSocket_OpenSSL::setTracer(const shared_ptr <net::tracer>& tracer) { m_wrapped->setTracer(tracer); } @@ -538,9 +587,9 @@ int TLSSocket_OpenSSL::bio_write(BIO* bio, const char* buf, int len) if (buf == NULL || len <= 0) return -1; - TLSSocket_OpenSSL *sok = reinterpret_cast <TLSSocket_OpenSSL*>(bio->ptr); + TLSSocket_OpenSSL *sok = reinterpret_cast <TLSSocket_OpenSSL*>(BIO_get_data(bio)); - if (!bio->init || !sok) + if (!BIO_get_init(bio) || !sok) return -1; try @@ -573,9 +622,9 @@ int TLSSocket_OpenSSL::bio_read(BIO* bio, char* buf, int len) if (buf == NULL || len <= 0) return -1; - TLSSocket_OpenSSL *sok = reinterpret_cast <TLSSocket_OpenSSL*>(bio->ptr); + TLSSocket_OpenSSL *sok = reinterpret_cast <TLSSocket_OpenSSL*>(BIO_get_data(bio)); - if (!bio->init || !sok) + if (!BIO_get_init(bio) || !sok) return -1; try @@ -621,12 +670,12 @@ long TLSSocket_OpenSSL::bio_ctrl(BIO* bio, int cmd, long num, void* /* ptr */) case BIO_CTRL_GET_CLOSE: - ret = bio->shutdown; + ret = BIO_get_shutdown(bio); break; case BIO_CTRL_SET_CLOSE: - bio->shutdown = static_cast <int>(num); + BIO_set_shutdown(bio, static_cast <int>(num)); break; case BIO_CTRL_PENDING: @@ -654,10 +703,10 @@ long TLSSocket_OpenSSL::bio_ctrl(BIO* bio, int cmd, long num, void* /* ptr */) // static int TLSSocket_OpenSSL::bio_create(BIO* bio) { - bio->init = 0; - bio->num = 0; - bio->ptr = NULL; - bio->flags = 0; + BIO_set_init(bio, 0); + BIO_set_num(bio, 0); + BIO_set_data(bio, NULL); + BIO_set_flags(bio, 0); return 1; } @@ -669,11 +718,11 @@ int TLSSocket_OpenSSL::bio_destroy(BIO* bio) if (bio == NULL) return 0; - if (bio->shutdown) + if (BIO_get_shutdown(bio)) { - bio->ptr = NULL; - bio->init = 0; - bio->flags = 0; + BIO_set_data(bio, NULL); + BIO_set_init(bio, 0); + BIO_set_flags(bio, 0); } return 1; diff --git a/src/vmime/net/tls/openssl/TLSSocket_OpenSSL.hpp b/src/vmime/net/tls/openssl/TLSSocket_OpenSSL.hpp index 34324b8c..9f395051 100644 --- a/src/vmime/net/tls/openssl/TLSSocket_OpenSSL.hpp +++ b/src/vmime/net/tls/openssl/TLSSocket_OpenSSL.hpp @@ -54,7 +54,7 @@ class TLSSocket_OpenSSL : public TLSSocket { public: - TLSSocket_OpenSSL(shared_ptr <TLSSession_OpenSSL> session, shared_ptr <socket> sok); + TLSSocket_OpenSSL(const shared_ptr <TLSSession_OpenSSL>& session, const shared_ptr <socket>& sok); ~TLSSocket_OpenSSL(); @@ -87,7 +87,7 @@ public: shared_ptr <timeoutHandler> getTimeoutHandler(); - void setTracer(shared_ptr <net::tracer> tracer); + void setTracer(const shared_ptr <net::tracer>& tracer); shared_ptr <net::tracer> getTracer(); private: diff --git a/src/vmime/net/tracer.hpp b/src/vmime/net/tracer.hpp index e30c823c..853455a3 100644 --- a/src/vmime/net/tracer.hpp +++ b/src/vmime/net/tracer.hpp @@ -96,7 +96,7 @@ public: * different connections used by a service * @return a new tracer */ - virtual shared_ptr <tracer> create(shared_ptr <service> serv, const int connectionId) = 0; + virtual shared_ptr <tracer> create(const shared_ptr <service>& serv, const int connectionId) = 0; }; diff --git a/src/vmime/net/transport.cpp b/src/vmime/net/transport.cpp index dd7281d0..1b69995c 100644 --- a/src/vmime/net/transport.cpp +++ b/src/vmime/net/transport.cpp @@ -43,13 +43,13 @@ namespace vmime { namespace net { -transport::transport(shared_ptr <session> sess, const serviceInfos& infos, shared_ptr <security::authenticator> auth) +transport::transport(const shared_ptr <session>& sess, const serviceInfos& infos, const shared_ptr <security::authenticator>& auth) : service(sess, infos, auth) { } -shared_ptr <headerField> transport::processHeaderField(shared_ptr <headerField> field) +shared_ptr <headerField> transport::processHeaderField(const shared_ptr <headerField>& field) { if (utility::stringUtils::isStringEqualNoCase(field->getName(), fields::BCC)) { @@ -77,7 +77,7 @@ shared_ptr <headerField> transport::processHeaderField(shared_ptr <headerField> } -void transport::processHeader(shared_ptr <header> header) +void transport::processHeader(const shared_ptr <header>& header) { if (header->getFieldCount() == 0) return; @@ -122,7 +122,7 @@ static void extractMailboxes } -void transport::send(shared_ptr <vmime::message> msg, utility::progressListener* progress) +void transport::send(const shared_ptr <vmime::message>& msg, utility::progressListener* progress) { // Extract expeditor shared_ptr <mailbox> fromMbox = @@ -179,8 +179,8 @@ void transport::send(shared_ptr <vmime::message> msg, utility::progressListener* // Revert it back to original header after. struct XChangeMsgHeader { - XChangeMsgHeader(shared_ptr <vmime::message> _msg, - shared_ptr <vmime::header> _hdr) + XChangeMsgHeader(const shared_ptr <vmime::message>& _msg, + const shared_ptr <vmime::header>& _hdr) : msg(_msg), hdr(msg->getHeader()) { // Set new header @@ -204,7 +204,7 @@ void transport::send(shared_ptr <vmime::message> msg, utility::progressListener* void transport::send - (shared_ptr <vmime::message> msg, const mailbox& expeditor, const mailboxList& recipients, + (const shared_ptr <vmime::message>& msg, const mailbox& expeditor, const mailboxList& recipients, utility::progressListener* progress, const mailbox& sender) { // Generate the message, "stream" it and delegate the sending diff --git a/src/vmime/net/transport.hpp b/src/vmime/net/transport.hpp index 6c405cbb..a54f041e 100644 --- a/src/vmime/net/transport.hpp +++ b/src/vmime/net/transport.hpp @@ -56,7 +56,7 @@ class VMIME_EXPORT transport : public service { protected: - transport(shared_ptr <session> sess, const serviceInfos& infos, shared_ptr <security::authenticator> auth); + transport(const shared_ptr <session>& sess, const serviceInfos& infos, const shared_ptr <security::authenticator>& auth); public: @@ -67,7 +67,7 @@ public: * @param msg message to send * @param progress progress listener, or NULL if not used */ - virtual void send(shared_ptr <vmime::message> msg, utility::progressListener* progress = NULL); + virtual void send(const shared_ptr <vmime::message>& msg, utility::progressListener* progress = NULL); /** Send a message over this transport service. * @@ -97,7 +97,7 @@ public: * @param sender envelope sender (if empty, expeditor will be used) */ virtual void send - (shared_ptr <vmime::message> msg, + (const shared_ptr <vmime::message>& msg, const mailbox& expeditor, const mailboxList& recipients, utility::progressListener* progress = NULL, @@ -115,7 +115,7 @@ protected: * if the field is to be replaced, or a reference to the same headerField * that was passed if the field should be left as is */ - shared_ptr <headerField> processHeaderField(shared_ptr <headerField> field); + shared_ptr <headerField> processHeaderField(const shared_ptr <headerField>& field); /** Prepares the header before transmitting the message. * Removes headers that should not be present (eg. "Bcc", "Return-Path"), @@ -124,7 +124,7 @@ protected: * * @param header headers to process */ - void processHeader(shared_ptr <header> header); + void processHeader(const shared_ptr <header>& header); }; |