aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/async/nntp/MCNNTPAsyncSession.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/async/nntp/MCNNTPAsyncSession.h')
-rw-r--r--src/async/nntp/MCNNTPAsyncSession.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/async/nntp/MCNNTPAsyncSession.h b/src/async/nntp/MCNNTPAsyncSession.h
new file mode 100644
index 00000000..66f0cc0d
--- /dev/null
+++ b/src/async/nntp/MCNNTPAsyncSession.h
@@ -0,0 +1,85 @@
+#ifndef MAILCORE_MCNNTPASYNCSESSION_H
+
+#define MAILCORE_MCNNTPASYNCSESSION_H
+
+#include <MailCore/MCBaseTypes.h>
+
+#ifdef __cplusplus
+
+namespace mailcore {
+
+ class NNTPOperation;
+ class NNTPSession;
+ class NNTPFetchHeaderOperation;
+ class NNTPFetchArticleOperation;
+ class MCNNTPFetchArticlesOperation;
+ class NNTPListNewsgroupsOperation;
+ class NNTPOperationQueueCallback;
+ class NNTPConnectionLogger;
+
+ class NNTPAsyncSession : public Object {
+ public:
+ NNTPAsyncSession();
+ virtual ~NNTPAsyncSession();
+
+ virtual void setHostname(String * hostname);
+ virtual String * hostname();
+
+ virtual void setPort(unsigned int port);
+ virtual unsigned int port();
+
+ virtual void setUsername(String * login);
+ virtual String * username();
+
+ virtual void setPassword(String * password);
+ virtual String * password();
+
+ virtual void setConnectionType(ConnectionType connectionType);
+ virtual ConnectionType connectionType();
+
+ virtual void setTimeout(time_t timeout);
+ virtual time_t timeout();
+
+ virtual void setCheckCertificateEnabled(bool enabled);
+ virtual bool isCheckCertificateEnabled();
+
+ virtual void setConnectionLogger(ConnectionLogger * logger);
+ virtual ConnectionLogger * connectionLogger();
+
+#ifdef __APPLE__
+ virtual void setDispatchQueue(dispatch_queue_t dispatchQueue);
+ virtual dispatch_queue_t dispatchQueue();
+#endif
+
+ virtual MCNNTPFetchArticlesOperation * fetchArticlesOperation(String * group);
+
+ virtual NNTPFetchHeaderOperation * fetchHeaderOperation(String * groupName, unsigned int index);
+
+ virtual NNTPFetchArticleOperation * fetchArticleOperation(String *groupName, unsigned int index);
+
+ virtual NNTPListNewsgroupsOperation * listAllNewsgroupsOperation();
+ virtual NNTPListNewsgroupsOperation * listSubscribedNewsgroupsOperation();
+
+ virtual NNTPOperation * disconnectOperation();
+
+ virtual NNTPOperation * checkAccountOperation();
+
+ private:
+ NNTPSession * mSession;
+ OperationQueue * mQueue;
+ NNTPOperationQueueCallback * mQueueCallback;
+ ConnectionLogger * mConnectionLogger;
+ pthread_mutex_t mConnectionLoggerLock;
+ NNTPConnectionLogger * mInternalLogger;
+
+ public: // private
+ virtual void runOperation(NNTPOperation * operation);
+ virtual NNTPSession * session();
+ virtual void logConnection(ConnectionLogType logType, Data * buffer);
+ };
+
+}
+
+#endif
+
+#endif