From f9913fa28a27f23fde2d4956c62cbb2fb2bc2ee8 Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Thu, 21 Nov 2013 22:16:57 +0100 Subject: Boost/C++11 shared pointers. --- src/net/imap/IMAPMessage.cpp | 98 ++++++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 49 deletions(-) (limited to 'src/net/imap/IMAPMessage.cpp') diff --git a/src/net/imap/IMAPMessage.cpp b/src/net/imap/IMAPMessage.cpp index d512e752..ae51bfe8 100644 --- a/src/net/imap/IMAPMessage.cpp +++ b/src/net/imap/IMAPMessage.cpp @@ -97,17 +97,17 @@ private: // -IMAPMessage::IMAPMessage(ref folder, const int num) +IMAPMessage::IMAPMessage(shared_ptr folder, const int num) : m_folder(folder), m_num(num), m_size(-1), m_flags(FLAG_UNDEFINED), - m_expunged(false), m_modseq(0), m_structure(NULL) + m_expunged(false), m_modseq(0), m_structure(null) { folder->registerMessage(this); } -IMAPMessage::IMAPMessage(ref folder, const int num, const uid& uid) +IMAPMessage::IMAPMessage(shared_ptr folder, const int 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) + m_expunged(false), m_uid(uid), m_modseq(0), m_structure(null) { folder->registerMessage(this); } @@ -115,7 +115,7 @@ IMAPMessage::IMAPMessage(ref folder, const int num, const uid& uid) IMAPMessage::~IMAPMessage() { - ref folder = m_folder.acquire(); + shared_ptr folder = m_folder.lock(); if (folder) folder->unregisterMessage(this); @@ -124,7 +124,7 @@ IMAPMessage::~IMAPMessage() void IMAPMessage::onFolderClosed() { - m_folder = NULL; + m_folder.reset(); } @@ -170,7 +170,7 @@ int IMAPMessage::getFlags() const } -ref IMAPMessage::getStructure() const +shared_ptr IMAPMessage::getStructure() const { if (m_structure == NULL) throw exceptions::unfetched_object(); @@ -179,7 +179,7 @@ ref IMAPMessage::getStructure() const } -ref IMAPMessage::getStructure() +shared_ptr IMAPMessage::getStructure() { if (m_structure == NULL) throw exceptions::unfetched_object(); @@ -188,7 +188,7 @@ ref IMAPMessage::getStructure() } -ref IMAPMessage::getHeader() const +shared_ptr IMAPMessage::getHeader() const { if (m_header == NULL) throw exceptions::unfetched_object(); @@ -200,20 +200,20 @@ ref IMAPMessage::getHeader() const void IMAPMessage::extract(utility::outputStream& os, utility::progressListener* progress, const int start, const int length, const bool peek) const { - ref folder = m_folder.acquire(); + shared_ptr folder = m_folder.lock(); if (!folder) throw exceptions::folder_not_found(); - extractImpl(NULL, os, progress, start, length, EXTRACT_HEADER | EXTRACT_BODY | (peek ? EXTRACT_PEEK : 0)); + extractImpl(null, os, progress, start, length, EXTRACT_HEADER | EXTRACT_BODY | (peek ? EXTRACT_PEEK : 0)); } void IMAPMessage::extractPart - (ref p, utility::outputStream& os, utility::progressListener* progress, + (shared_ptr p, utility::outputStream& os, utility::progressListener* progress, const int start, const int length, const bool peek) const { - ref folder = m_folder.acquire(); + shared_ptr folder = m_folder.lock(); if (!folder) throw exceptions::folder_not_found(); @@ -222,9 +222,9 @@ void IMAPMessage::extractPart } -void IMAPMessage::fetchPartHeader(ref p) +void IMAPMessage::fetchPartHeader(shared_ptr p) { - ref folder = m_folder.acquire(); + shared_ptr folder = m_folder.lock(); if (!folder) throw exceptions::folder_not_found(); @@ -234,15 +234,15 @@ void IMAPMessage::fetchPartHeader(ref p) extractImpl(p, ossAdapter, NULL, 0, -1, EXTRACT_HEADER | EXTRACT_PEEK); - p.dynamicCast ()->getOrCreateHeader().parse(oss.str()); + dynamicCast (p)->getOrCreateHeader().parse(oss.str()); } -void IMAPMessage::fetchPartHeaderForStructure(ref str) +void IMAPMessage::fetchPartHeaderForStructure(shared_ptr str) { for (size_t i = 0, n = str->getPartCount() ; i < n ; ++i) { - ref part = str->getPartAt(i); + shared_ptr part = str->getPartAt(i); // Fetch header of current part fetchPartHeader(part); @@ -253,11 +253,11 @@ void IMAPMessage::fetchPartHeaderForStructure(ref str) } -void IMAPMessage::extractImpl(ref p, utility::outputStream& os, +void IMAPMessage::extractImpl(shared_ptr p, utility::outputStream& os, utility::progressListener* progress, const int start, const int length, const int extractFlags) const { - ref folder = m_folder.acquire(); + shared_ptr folder = m_folder.lock(); IMAPMessage_literalHandler literalHandler(os, progress); @@ -267,7 +267,7 @@ void IMAPMessage::extractImpl(ref p, utility::outputStream& if (p != NULL) { - ref currentPart = p.dynamicCast (); + shared_ptr currentPart = dynamicCast (p); std::vector numbers; numbers.push_back(currentPart->getNumber()); @@ -344,11 +344,11 @@ void IMAPMessage::extractImpl(ref p, utility::outputStream& command << "<" << start << "." << length << ">"; // Send the request - folder.constCast ()->m_connection->send(true, command.str(), true); + constCast (folder)->m_connection->send(true, command.str(), true); // Get the response - utility::auto_ptr resp - (folder.constCast ()->m_connection->readResponse(&literalHandler)); + std::auto_ptr resp + (constCast (folder)->m_connection->readResponse(&literalHandler)); if (resp->isBad() || resp->response_done()->response_tagged()-> resp_cond_state()->status() != IMAPParser::resp_cond_state::OK) @@ -368,7 +368,7 @@ void IMAPMessage::extractImpl(ref p, utility::outputStream& int IMAPMessage::processFetchResponse (const fetchAttributes& options, const IMAPParser::message_data* msgData) { - ref folder = m_folder.acquire(); + shared_ptr folder = m_folder.lock(); // Get message attributes const std::vector atts = msgData->msg_att()->items(); @@ -406,7 +406,7 @@ int IMAPMessage::processFetchResponse if (!options.has(fetchAttributes::FULL_HEADER)) { const IMAPParser::envelope* env = (*it)->envelope(); - ref hdr = getOrCreateHeader(); + shared_ptr hdr = getOrCreateHeader(); // Date hdr->Date()->setValue(env->env_date()->value()); @@ -463,7 +463,7 @@ int IMAPMessage::processFetchResponse } case IMAPParser::msg_att_item::BODY_STRUCTURE: { - m_structure = vmime::create ((*it)->body()); + m_structure = make_shared ((*it)->body()); break; } case IMAPParser::msg_att_item::RFC822_HEADER: @@ -488,12 +488,12 @@ int IMAPMessage::processFetchResponse tempHeader.parse((*it)->nstring()->value()); vmime::header& hdr = *getOrCreateHeader(); - std::vector > fields = tempHeader.getFieldList(); + std::vector > fields = tempHeader.getFieldList(); - for (std::vector >::const_iterator jt = fields.begin() ; + for (std::vector >::const_iterator jt = fields.begin() ; jt != fields.end() ; ++jt) { - hdr.appendField((*jt)->clone().dynamicCast ()); + hdr.appendField(vmime::clone(*jt)); } } } @@ -515,18 +515,18 @@ int IMAPMessage::processFetchResponse } -ref
IMAPMessage::getOrCreateHeader() +shared_ptr
IMAPMessage::getOrCreateHeader() { if (m_header != NULL) return (m_header); else - return (m_header = vmime::create
()); + return (m_header = make_shared
()); } void IMAPMessage::setFlags(const int flags, const int mode) { - ref folder = m_folder.acquire(); + shared_ptr folder = m_folder.lock(); if (!folder) throw exceptions::folder_not_found(); @@ -539,20 +539,20 @@ void IMAPMessage::setFlags(const int flags, const int mode) void IMAPMessage::constructParsedMessage - (ref parentPart, ref str, int level) + (shared_ptr parentPart, shared_ptr str, int level) { if (level == 0) { - ref part = str->getPartAt(0); + shared_ptr part = str->getPartAt(0); // Copy header - ref hdr = part->getHeader(); + shared_ptr hdr = part->getHeader(); parentPart->getHeader()->copyFrom(*hdr); // Initialize body parentPart->getBody()->setContents - (vmime::create - (thisRef().dynamicCast (), + (make_shared + (dynamicCast (shared_from_this()), part, parentPart->getBody()->getEncoding())); constructParsedMessage(parentPart, part->getStructure(), 1); @@ -561,18 +561,18 @@ void IMAPMessage::constructParsedMessage { for (size_t i = 0, n = str->getPartCount() ; i < n ; ++i) { - ref part = str->getPartAt(i); + shared_ptr part = str->getPartAt(i); - ref childPart = vmime::create (); + shared_ptr childPart = make_shared (); // Copy header - ref hdr = part->getHeader(); + shared_ptr hdr = part->getHeader(); childPart->getHeader()->copyFrom(*hdr); // Initialize body childPart->getBody()->setContents - (vmime::create - (thisRef().dynamicCast (), + (make_shared + (dynamicCast (shared_from_this()), part, childPart->getBody()->getEncoding())); // Add child part @@ -585,10 +585,10 @@ void IMAPMessage::constructParsedMessage } -ref IMAPMessage::getParsedMessage() +shared_ptr IMAPMessage::getParsedMessage() { // Fetch structure - ref structure = NULL; + shared_ptr structure; try { @@ -596,10 +596,10 @@ ref IMAPMessage::getParsedMessage() } catch (exceptions::unfetched_object&) { - std::vector > msgs; - msgs.push_back(thisRef().dynamicCast ()); + std::vector > msgs; + msgs.push_back(dynamicCast (shared_from_this())); - m_folder.acquire()->fetchMessages + m_folder.lock()->fetchMessages (msgs, fetchAttributes(fetchAttributes::STRUCTURE), /* progress */ NULL); structure = getStructure(); @@ -609,7 +609,7 @@ ref IMAPMessage::getParsedMessage() fetchPartHeaderForStructure(structure); // Construct message from structure - ref msg = vmime::create (); + shared_ptr msg = make_shared (); constructParsedMessage(msg, structure); -- cgit v1.2.3