diff options
Diffstat (limited to 'src/uscxml/plugins/invoker/imap/IMAPInvoker.h')
-rw-r--r-- | src/uscxml/plugins/invoker/imap/IMAPInvoker.h | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/src/uscxml/plugins/invoker/imap/IMAPInvoker.h b/src/uscxml/plugins/invoker/imap/IMAPInvoker.h deleted file mode 100644 index bf2b3e9..0000000 --- a/src/uscxml/plugins/invoker/imap/IMAPInvoker.h +++ /dev/null @@ -1,171 +0,0 @@ -/** - * @file - * @author 2012-2013 Stefan Radomski (stefan.radomski@cs.tu-darmstadt.de) - * @copyright Simplified BSD - * - * @cond - * This program is free software: you can redistribute it and/or modify - * it under the terms of the FreeBSD license as published by the FreeBSD - * project. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the FreeBSD license along with this - * program. If not, see <http://www.opensource.org/licenses/bsd-license>. - * @endcond - */ - -#ifndef IMAPINVOKER_H_W09JFED0 -#define IMAPINVOKER_H_W09JFED0 - -#include <uscxml/Interpreter.h> -#include <uscxml/concurrency/BlockingQueue.h> - -#ifdef BUILD_AS_PLUGINS -#include "uscxml/plugins/Plugins.h" -#endif - -#include <curl/curl.h> - -namespace uscxml { - -class IMAPInvoker : public InvokerImpl { -public: - IMAPInvoker(); - virtual ~IMAPInvoker(); - virtual boost::shared_ptr<InvokerImpl> create(InterpreterImpl* interpreter); - - virtual std::list<std::string> getNames() { - std::list<std::string> names; - names.push_back("imap"); - names.push_back("http://uscxml.tk.informatik.tu-darmstadt.de/#imap"); - return names; - } - - virtual Data getDataModelVariables(); - virtual void send(const SendRequest& req); - virtual void cancel(const std::string sendId); - virtual void invoke(const InvokeRequest& req); - -protected: - - class IMAPContext { - - public: - enum Cmd { - // valid in authenticated state - IMAP_SELECT, - IMAP_EXAMINE, - IMAP_CREATE, - IMAP_DELETE, - IMAP_RENAME, - IMAP_SUBSCRIBE, - IMAP_UNSUBSCRIBE, - IMAP_LIST, - IMAP_LSUB, - IMAP_STATUS, - IMAP_APPEND, - // valid in selected state - IMAP_CHECK, - IMAP_CLOSE, - IMAP_EXPUNGE, - IMAP_SEARCH, - IMAP_FETCH, - IMAP_STORE, - IMAP_COPY, - IMAP_UID, - IMAP_XEXTENSION, - }; - - struct MailboxOp { - std::string mailbox; - }; - - struct Select : MailboxOp {}; - struct Examine : MailboxOp {}; - struct Create : MailboxOp {}; - struct Delete : MailboxOp {}; - struct Rename : MailboxOp { - std::string newName; - }; - struct Subscribe : MailboxOp {}; - struct Unsubscribe : MailboxOp {}; - struct List : MailboxOp { - std::string refName; - }; - struct LSub : List {}; - struct Status : MailboxOp { - std::string dataItems; - }; - struct Append : MailboxOp { - std::string flags; - std::string dateTime; - std::string literal; - }; - struct Check {}; - struct Close {}; - struct Expunge {}; - struct Search { - std::string charSet; - std::string criteria; - }; - struct Fetch { - std::string sequence; - std::string itemNames; - }; - struct Store : Fetch { - std::string values; - }; - struct Copy : MailboxOp { - std::string sequence; - }; - struct UId { - std::string command; - std::string arguments; - }; - struct XExtension : UId {}; - - - IMAPContext() : readPtr(0) {} - - void* arguments; - Cmd command; - - IMAPInvoker* invoker; - SendRequest sendReq; - std::stringstream inContent; - std::string outContent; - size_t readPtr; - bool verbose; - bool useSSL; - - }; - -protected: - std::string _username; - std::string _password; - std::string _server; - - static void run(void*); - - tthread::thread* _thread; - uscxml::concurrency::BlockingQueue<IMAPContext*> _workQueue; - bool _isRunning; - - void process(IMAPContext* ctx); - static size_t writeCurlData(void *ptr, size_t size, size_t nmemb, void *userdata); - static size_t readCurlData(void *ptr, size_t size, size_t nmemb, void *userdata); - -// Data parseListReponse(const std::string& response); -}; - -#ifdef BUILD_AS_PLUGINS -PLUMA_INHERIT_PROVIDER(IMAPInvoker, InvokerImpl); -#endif - -} - - -#endif /* end of include guard: IMAPINVOKER_H_W09JFED0 */ |