diff options
author | Vincent Richard <[email protected]> | 2005-07-12 22:28:02 +0000 |
---|---|---|
committer | Vincent Richard <[email protected]> | 2005-07-12 22:28:02 +0000 |
commit | 681297e10b666e13cc463f6fbb16236f36c3266c (patch) | |
tree | 5d2392e2283232ed3475cd9c69e22897b03e8a97 /examples | |
parent | Added contentHandler::extractRaw(). (diff) | |
download | vmime-681297e10b666e13cc463f6fbb16236f36c3266c.tar.gz vmime-681297e10b666e13cc463f6fbb16236f36c3266c.zip |
Reference counting and smart pointers.
Diffstat (limited to 'examples')
-rw-r--r-- | examples/example1.cpp | 11 | ||||
-rw-r--r-- | examples/example2.cpp | 13 | ||||
-rw-r--r-- | examples/example3.cpp | 17 | ||||
-rw-r--r-- | examples/example6.cpp | 55 | ||||
-rw-r--r-- | examples/example7.cpp | 4 |
5 files changed, 41 insertions, 59 deletions
diff --git a/examples/example1.cpp b/examples/example1.cpp index 8cd271d3..f5c5aae3 100644 --- a/examples/example1.cpp +++ b/examples/example1.cpp @@ -48,24 +48,24 @@ int main() mb.setExpeditor(vmime::mailbox("[email protected]")); vmime::addressList to; - to.appendAddress(new vmime::mailbox("[email protected]")); + to.appendAddress(vmime::create <vmime::mailbox>("[email protected]")); mb.setRecipients(to); vmime::addressList bcc; - bcc.appendAddress(new vmime::mailbox("[email protected]")); + bcc.appendAddress(vmime::create <vmime::mailbox>("[email protected]")); mb.setBlindCopyRecipients(bcc); mb.setSubject(vmime::text("My first message generated with vmime::messageBuilder")); // Message body - mb.getTextPart()->setText(vmime::stringContentHandler( + mb.getTextPart()->setText(vmime::create <vmime::stringContentHandler>( "I'm writing this short text to test message construction " \ "using the vmime::messageBuilder component.")); // Construction - vmime::message* msg = mb.construct(); + vmime::ref <vmime::message> msg = mb.construct(); // Raw text generation std::cout << "Generated message:" << std::endl; @@ -73,9 +73,6 @@ int main() vmime::utility::outputStreamAdapter out(std::cout); msg->generate(out); - - // Destruction - delete (msg); } // VMime exception catch (vmime::exception& e) diff --git a/examples/example2.cpp b/examples/example2.cpp index 70389076..ef4759aa 100644 --- a/examples/example2.cpp +++ b/examples/example2.cpp @@ -48,24 +48,24 @@ int main() mb.setExpeditor(vmime::mailbox("[email protected]")); vmime::addressList to; - to.appendAddress(new vmime::mailbox("[email protected]")); + to.appendAddress(vmime::create <vmime::mailbox>("[email protected]")); mb.setRecipients(to); vmime::addressList bcc; - bcc.appendAddress(new vmime::mailbox("[email protected]")); + bcc.appendAddress(vmime::create <vmime::mailbox>("[email protected]")); mb.setBlindCopyRecipients(bcc); mb.setSubject(vmime::text("My first message generated with vmime::messageBuilder")); // Message body - mb.getTextPart()->setText(vmime::stringContentHandler( + mb.getTextPart()->setText(vmime::create <vmime::stringContentHandler>( "I'm writing this short text to test message construction " \ "with attachment, using the vmime::messageBuilder component.")); // Adding an attachment - vmime::fileAttachment* a = new vmime::fileAttachment + vmime::ref <vmime::fileAttachment> a = vmime::create <vmime::fileAttachment> ( "./example2.cpp", // full path to file vmime::mediaType("application/octet-stream"), // content type @@ -78,7 +78,7 @@ int main() mb.attach(a); // Construction - vmime::message* msg = mb.construct(); + vmime::ref <vmime::message> msg = mb.construct(); // Raw text generation vmime::string dataToSend = msg->generate(); @@ -87,9 +87,6 @@ int main() std::cout << "==================" << std::endl; std::cout << std::endl; std::cout << dataToSend << std::endl; - - // Destruction - delete (msg); } // VMime exception catch (vmime::exception& e) diff --git a/examples/example3.cpp b/examples/example3.cpp index 1bfa21c8..c3654545 100644 --- a/examples/example3.cpp +++ b/examples/example3.cpp @@ -48,12 +48,12 @@ int main() mb.setExpeditor(vmime::mailbox("[email protected]")); vmime::addressList to; - to.appendAddress(new vmime::mailbox("[email protected]")); + to.appendAddress(vmime::create <vmime::mailbox>("[email protected]")); mb.setRecipients(to); vmime::addressList bcc; - bcc.appendAddress(new vmime::mailbox("[email protected]")); + bcc.appendAddress(vmime::create <vmime::mailbox>("[email protected]")); mb.setBlindCopyRecipients(bcc); @@ -65,7 +65,7 @@ int main() // Fill in the text part: the message is available in two formats: HTML and plain text. // HTML text part also includes an inline image (embedded into the message). - vmime::htmlTextPart& textPart = dynamic_cast<vmime::htmlTextPart&>(*mb.getTextPart()); + vmime::htmlTextPart& textPart = *mb.getTextPart().dynamicCast <vmime::htmlTextPart>(); // -- embed an image (the returned "CID" (content identifier) is used to reference // -- the image into HTML content). @@ -73,11 +73,13 @@ int main() vmime::mediaType(vmime::mediaTypes::IMAGE, vmime::mediaTypes::IMAGE_JPEG)); // -- message text - textPart.setText(vmime::stringContentHandler(vmime::string("This is the <b>HTML text</b>.<br/><img src=\"") + cid + vmime::string("\"/>"))); - textPart.setPlainText(vmime::stringContentHandler("This is the plain text (without HTML formatting).")); + textPart.setText(vmime::create <vmime::stringContentHandler> + (vmime::string("This is the <b>HTML text</b>.<br/><img src=\"") + cid + vmime::string("\"/>"))); + textPart.setPlainText(vmime::create <vmime::stringContentHandler> + ("This is the plain text (without HTML formatting).")); // Construction - vmime::message* msg = mb.construct(); + vmime::ref <vmime::message> msg = mb.construct(); // Raw text generation vmime::string dataToSend = msg->generate(); @@ -86,9 +88,6 @@ int main() std::cout << "==================" << std::endl; std::cout << std::endl; std::cout << dataToSend << std::endl; - - // Destruction - delete (msg); } // VMime exception catch (vmime::exception& e) diff --git a/examples/example6.cpp b/examples/example6.cpp index 349238d9..3368e59c 100644 --- a/examples/example6.cpp +++ b/examples/example6.cpp @@ -26,8 +26,8 @@ // Global session object -static vmime::utility::auto_ptr <vmime::messaging::session> g_session - = new vmime::messaging::session(); +static vmime::ref <vmime::messaging::session> g_session + = vmime::create <vmime::messaging::session>(); // Authentification handler @@ -127,7 +127,7 @@ static void printStructure(const vmime::messaging::structure& s, const int level } -static const vmime::string getFolderPathString(vmime::messaging::folder* f) +static const vmime::string getFolderPathString(vmime::ref <vmime::messaging::folder> f) { const vmime::string n = f->getName().getBuffer(); @@ -137,7 +137,7 @@ static const vmime::string getFolderPathString(vmime::messaging::folder* f) } else { - vmime::utility::auto_ptr <vmime::messaging::folder> p = f->getParent(); + vmime::ref <vmime::messaging::folder> p = f->getParent(); return getFolderPathString(p) + n + "/"; } } @@ -147,20 +147,17 @@ static const vmime::string getFolderPathString(vmime::messaging::folder* f) * * @param folder current folder */ -static void printFolders(vmime::messaging::folder* folder, const int level = 0) +static void printFolders(vmime::ref <vmime::messaging::folder> folder, const int level = 0) { for (int j = 0 ; j < level * 2 ; ++j) std::cout << " "; std::cout << getFolderPathString(folder) << std::endl; - std::vector <vmime::messaging::folder*> subFolders = folder->getFolders(false); + std::vector <vmime::ref <vmime::messaging::folder> > subFolders = folder->getFolders(false); for (unsigned int i = 0 ; i < subFolders.size() ; ++i) - { printFolders(subFolders[i], level + 1); - delete subFolders[i]; - } } @@ -213,10 +210,8 @@ static void sendMessage() vmime::utility::url url(urlString); - interactiveAuthenticator auth; - - vmime::utility::auto_ptr <vmime::messaging::transport> tr = - g_session->getTransport(url, &auth); + vmime::ref <vmime::messaging::transport> tr = + g_session->getTransport(url, vmime::create <interactiveAuthenticator>()); // You can also set some properties (see example7 to know the properties // available for each service). For example, for SMTP: @@ -243,7 +238,7 @@ static void sendMessage() cont = (toString.size() != 0); if (cont) - to.appendMailbox(new vmime::mailbox(toString)); + to.appendMailbox(vmime::create <vmime::mailbox>(toString)); } std::cout << "Enter message data (end with '.' on a single line):" << std::endl; @@ -312,19 +307,19 @@ static void connectStore() // If no authenticator is given in argument to getStore(), a default one // is used. Its behaviour is to get the user credentials from the // session properties "auth.username" and "auth.password". - interactiveAuthenticator auth; + vmime::ref <vmime::messaging::store> st; - vmime::utility::auto_ptr <vmime::messaging::store> st = - g_session->getStore(url, - (url.getUsername().empty() || url.getPassword().empty()) - ? &auth : NULL); + if (url.getUsername().empty() || url.getPassword().empty()) + st = g_session->getStore(url, vmime::create <interactiveAuthenticator>()); + else + st = g_session->getStore(url); // Connect to the mail store st->connect(); // Open the default folder in this store - vmime::utility::auto_ptr <vmime::messaging::folder> f = st->getDefaultFolder(); -// vmime::utility::auto_ptr <vmime::messaging::folder> f = st->getFolder(vmime::utility::path("a")); + vmime::ref <vmime::messaging::folder> f = st->getDefaultFolder(); +// vmime::ref <vmime::messaging::folder> f = st->getFolder(vmime::utility::path("a")); f->open(vmime::messaging::folder::MODE_READ_WRITE); @@ -335,7 +330,7 @@ static void connectStore() for (bool cont = true ; cont ; ) { - typedef std::map <int, vmime::utility::smart_ptr <vmime::messaging::message> > MessageList; + typedef std::map <int, vmime::ref <vmime::messaging::message> > MessageList; MessageList msgList; try @@ -353,7 +348,7 @@ static void connectStore() const int choice = printMenu(choices); // Request message number - vmime::utility::smart_ptr <vmime::messaging::message> msg; + vmime::ref <vmime::messaging::message> msg; if (choice != 6 && choice != 7) { @@ -431,7 +426,7 @@ static void connectStore() f->fetchMessage(msg, vmime::messaging::folder::FETCH_ENVELOPE); #define ENV_HELPER(x) \ - try { std::cout << msg->getHeader().x().generate() << std::endl; } \ + try { std::cout << msg->getHeader().x()->generate() << std::endl; } \ catch (vmime::exception) { /* In case the header field does not exist. */ } ENV_HELPER(From) @@ -454,7 +449,7 @@ static void connectStore() // List folders case 6: { - vmime::utility::auto_ptr <vmime::messaging::folder> + vmime::ref <vmime::messaging::folder> root = st->getRootFolder(); printFolders(root); @@ -482,25 +477,21 @@ static void connectStore() // Folder renaming { - vmime::messaging::folder* f = st->getFolder(vmime::messaging::folder::path("c")); + vmime::ref <vmime::messaging::folder> f = st->getFolder(vmime::messaging::folder::path("c")); f->rename(vmime::messaging::folder::path("c2")); - delete (f); - vmime::messaging::folder* g = st->getFolder(vmime::messaging::folder::path("c2")); + vmime::ref <vmime::messaging::folder> g = st->getFolder(vmime::messaging::folder::path("c2")); g->rename(vmime::messaging::folder::path("c")); - delete (g); } // Message copy: copy all messages from 'f' to 'g' { - vmime::messaging::folder* g = st->getFolder(vmime::messaging::folder::path("TEMP")); + vmime::ref <vmime::messaging::folder> g = st->getFolder(vmime::messaging::folder::path("TEMP")); if (!g->exists()) g->create(vmime::messaging::folder::TYPE_CONTAINS_MESSAGES); f->copyMessages(g->getFullPath()); - - delete (g); } */ } diff --git a/examples/example7.cpp b/examples/example7.cpp index 16492bb4..7161f4e6 100644 --- a/examples/example7.cpp +++ b/examples/example7.cpp @@ -49,14 +49,12 @@ int main() std::cout << " * " << enc.getName() << std::endl; - vmime::encoder* e = enc.create(); + vmime::ref <vmime::encoder> e = enc.create(); std::vector <vmime::string> props = e->getAvailableProperties(); for (std::vector <vmime::string>::const_iterator it = props.begin() ; it != props.end() ; ++it) std::cout << " - " << *it << std::endl; - - delete (e); } std::cout << std::endl; |