diff options
author | robario <webmaster@robario.com> | 2014-10-29 17:32:09 +0900 |
---|---|---|
committer | robario <webmaster@robario.com> | 2014-10-29 18:12:59 +0900 |
commit | aeb15860575a764dd444108098dcb95c73d4d6df (patch) | |
tree | 222c675c1fbdf04d44c535d7bc6208c5869eb2c5 /src/async | |
parent | 2f6f1ca69d59e2692f85d56941e7d996195cd6e8 (diff) |
Add a new operation for SMTP login.
Diffstat (limited to 'src/async')
-rw-r--r-- | src/async/smtp/MCSMTPAsyncSession.cc | 8 | ||||
-rw-r--r-- | src/async/smtp/MCSMTPAsyncSession.h | 1 | ||||
-rw-r--r-- | src/async/smtp/MCSMTPLoginOperation.cc | 29 | ||||
-rw-r--r-- | src/async/smtp/MCSMTPLoginOperation.h | 34 |
4 files changed, 72 insertions, 0 deletions
diff --git a/src/async/smtp/MCSMTPAsyncSession.cc b/src/async/smtp/MCSMTPAsyncSession.cc index 1964c944..8acfc9c5 100644 --- a/src/async/smtp/MCSMTPAsyncSession.cc +++ b/src/async/smtp/MCSMTPAsyncSession.cc @@ -1,6 +1,7 @@ #include "MCSMTPAsyncSession.h" #include "MCSMTPSession.h" +#include "MCSMTPLoginOperation.h" #include "MCSMTPSendWithDataOperation.h" #include "MCSMTPCheckAccountOperation.h" #include "MCSMTPDisconnectOperation.h" @@ -206,6 +207,13 @@ void SMTPAsyncSession::tryAutomaticDisconnectAfterDelay(void * context) op->start(); } +SMTPOperation * SMTPAsyncSession::loginOperation() +{ + SMTPLoginOperation * op = new SMTPLoginOperation(); + op->setSession(this); + return (SMTPOperation *) op->autorelease(); +} + SMTPOperation * SMTPAsyncSession::sendMessageOperation(Data * messageData) { SMTPSendWithDataOperation * op = new SMTPSendWithDataOperation(); diff --git a/src/async/smtp/MCSMTPAsyncSession.h b/src/async/smtp/MCSMTPAsyncSession.h index fa0893d2..a48b5c26 100644 --- a/src/async/smtp/MCSMTPAsyncSession.h +++ b/src/async/smtp/MCSMTPAsyncSession.h @@ -59,6 +59,7 @@ namespace mailcore { virtual dispatch_queue_t dispatchQueue(); #endif + virtual SMTPOperation * loginOperation(); virtual SMTPOperation * sendMessageOperation(Data * messageData); virtual SMTPOperation * sendMessageOperation(Address * from, Array * recipients, Data * messageData); diff --git a/src/async/smtp/MCSMTPLoginOperation.cc b/src/async/smtp/MCSMTPLoginOperation.cc new file mode 100644 index 00000000..7740b54f --- /dev/null +++ b/src/async/smtp/MCSMTPLoginOperation.cc @@ -0,0 +1,29 @@ +// +// MCSMTPLoginOperation.cc +// mailcore2 +// +// Created by Robert Widmann on 9/24/13. +// Copyright (c) 2013 MailCore. All rights reserved. +// + +#include "MCSMTPLoginOperation.h" + +#include "MCSMTPAsyncSession.h" +#include "MCSMTPSession.h" + +using namespace mailcore; + +SMTPLoginOperation::SMTPLoginOperation() +{ +} + +SMTPLoginOperation::~SMTPLoginOperation() +{ +} + +void SMTPLoginOperation::main() +{ + ErrorCode error; + session()->session()->loginIfNeeded(&error); + setError(error); +} diff --git a/src/async/smtp/MCSMTPLoginOperation.h b/src/async/smtp/MCSMTPLoginOperation.h new file mode 100644 index 00000000..88b82641 --- /dev/null +++ b/src/async/smtp/MCSMTPLoginOperation.h @@ -0,0 +1,34 @@ +// +// MCSMTPLoginOperation.h +// mailcore2 +// +// Created by Robert Widmann on 9/24/13. +// Copyright (c) 2013 MailCore. All rights reserved. +// + +#ifndef MAILCORE_MCSMTPLOGINOPERATION_H + +#define MAILCORE_MCSMTPLOGINOPERATION_H + +#include <MailCore/MCBaseTypes.h> +#include <MailCore/MCAbstract.h> +#include <MailCore/MCSMTPOperation.h> + +#ifdef __cplusplus + +namespace mailcore { + + class SMTPLoginOperation : public SMTPOperation { + public: + SMTPLoginOperation(); + virtual ~SMTPLoginOperation(); + + public: // subclass behavior + virtual void main(); + }; + +} + +#endif + +#endif |