summaryrefslogtreecommitdiffstats
path: root/mailnews/news/src/nsNntpService.h
diff options
context:
space:
mode:
Diffstat (limited to 'mailnews/news/src/nsNntpService.h')
-rw-r--r--mailnews/news/src/nsNntpService.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/mailnews/news/src/nsNntpService.h b/mailnews/news/src/nsNntpService.h
new file mode 100644
index 000000000..58c2699f2
--- /dev/null
+++ b/mailnews/news/src/nsNntpService.h
@@ -0,0 +1,76 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsNntpService_h___
+#define nsNntpService_h___
+
+#include "nsINntpService.h"
+#include "nsIProtocolHandler.h"
+#include "nsIMsgMessageService.h"
+#include "nsINntpIncomingServer.h"
+#include "nsIMsgIncomingServer.h"
+#include "nsIFile.h"
+#include "MailNewsTypes.h"
+#include "nsIMsgProtocolInfo.h"
+#include "nsIMsgWindow.h"
+#include "nsINntpUrl.h"
+#include "nsCOMPtr.h"
+#include "nsIContentHandler.h"
+#include "nsICacheStorage.h"
+
+#include "nsICommandLineHandler.h"
+
+class nsIURI;
+class nsIUrlListener;
+
+class nsNntpService : public nsINntpService,
+ public nsIMsgMessageService,
+ public nsIMsgMessageFetchPartService,
+ public nsIProtocolHandler,
+ public nsIMsgProtocolInfo,
+ public nsICommandLineHandler,
+ public nsIContentHandler
+{
+public:
+
+ NS_DECL_THREADSAFE_ISUPPORTS
+ NS_DECL_NSINNTPSERVICE
+ NS_DECL_NSIMSGMESSAGESERVICE
+ NS_DECL_NSIPROTOCOLHANDLER
+ NS_DECL_NSIMSGPROTOCOLINFO
+ NS_DECL_NSICONTENTHANDLER
+ NS_DECL_NSIMSGMESSAGEFETCHPARTSERVICE
+ NS_DECL_NSICOMMANDLINEHANDLER
+
+ // nsNntpService
+ nsNntpService();
+
+protected:
+ virtual ~nsNntpService();
+
+ nsresult GetNntpServerByAccount(const char *aAccountKey, nsIMsgIncomingServer **aNntpServer);
+ nsresult SetUpNntpUrlForPosting(const char *aAccountKey, char **newsUrlSpec);
+ nsresult FindHostFromGroup(nsCString &host, nsCString &groupName);
+ nsresult FindServerWithNewsgroup(nsCString &host, nsCString &groupName);
+
+ nsresult CreateMessageIDURL(nsIMsgFolder *folder, nsMsgKey key, char **url);
+ nsresult GetMessageFromUrl(nsIURI *aUrl, nsIMsgWindow *aMsgWindow, nsISupports *aDisplayConsumer);
+ // a convience routine used to put together news urls
+ nsresult ConstructNntpUrl(const char * urlString, nsIUrlListener *aUrlListener, nsIMsgWindow * aMsgWindow, const char *originalMessageUri, int32_t action, nsIURI ** aUrl);
+ nsresult CreateNewsAccount(const char *aHostname, bool aIsSecure, int32_t aPort, nsIMsgIncomingServer **aServer);
+ nsresult GetServerForUri(nsIURI *aUri, nsINntpIncomingServer **aProtocol);
+ // a convience routine to run news urls
+ nsresult RunNewsUrl (nsIURI * aUrl, nsIMsgWindow *aMsgWindow, nsISupports * aConsumer);
+ // a convience routine to go from folder uri to msg folder
+ nsresult GetFolderFromUri(const char *uri, nsIMsgFolder **folder);
+ nsresult DecomposeNewsMessageURI(const char * aMessageURI, nsIMsgFolder ** aFolder, nsMsgKey *aMsgKey);
+
+ bool mPrintingOperation; // Flag for printing operations
+ bool mOpenAttachmentOperation; // Flag for opening attachments
+
+ nsCOMPtr<nsICacheStorage> mCacheStorage; // the cache storage used by news
+};
+
+#endif /* nsNntpService_h___ */