summaryrefslogtreecommitdiffstats
path: root/libmail/nntpfolder.H
diff options
context:
space:
mode:
Diffstat (limited to 'libmail/nntpfolder.H')
-rw-r--r--libmail/nntpfolder.H100
1 files changed, 100 insertions, 0 deletions
diff --git a/libmail/nntpfolder.H b/libmail/nntpfolder.H
new file mode 100644
index 0000000..ccd7a7b
--- /dev/null
+++ b/libmail/nntpfolder.H
@@ -0,0 +1,100 @@
+/*
+** Copyright 2003, Double Precision Inc.
+**
+** See COPYING for distribution information.
+*/
+#ifndef libmail_nntpfolder_H
+#define libmail_nntpfolder_H
+
+#include "libmail_config.h"
+
+#include "nntp.H"
+
+LIBMAIL_START
+
+// An NNTP folder object
+
+class mail::nntp::folder : public mail::folder {
+
+ nntp *myserver;
+
+ std::string path;
+ std::string name;
+
+ bool hasMessagesFlag;
+ bool hasSubFoldersFlag;
+
+ // Private class used to build hierarchy listings
+
+ std::string newsgroupName() const;
+
+public:
+ class hierEntry {
+ public:
+ bool foundFolder;
+ bool foundSubFolders;
+
+ hierEntry() : foundFolder(false), foundSubFolders(false)
+ {
+ }
+
+ ~hierEntry()
+ {
+ }
+ };
+
+ folder(nntp *myserverArg, std::string pathArg,
+ bool hasMessagesArg, bool hasSubFoldersArg);
+
+ folder(const mail::nntp::folder &);
+ mail::nntp::folder &operator=(const mail::nntp::folder &);
+
+ ~folder();
+
+ void sameServerAsHelperFunc() const;
+ std::string getName() const;
+ std::string getPath() const;
+ bool hasMessages() const;
+ bool hasSubFolders() const;
+ std::string isNewsgroup() const;
+ bool isParentOf(std::string path) const;
+ void hasMessages(bool);
+ void hasSubFolders(bool);
+ void readFolderInfo( callback::folderInfo
+ &callback1,
+ callback &callback2) const;
+ void getParentFolder(callback::folderList &callback1,
+ callback &callback2) const;
+ void readSubFolders( callback::folderList &callback1,
+ callback &callback2) const;
+ mail::addMessage *addMessage(callback &callback) const;
+ void createSubFolder(std::string name, bool isDirectory,
+ callback::folderList
+ &callback1,
+ callback &callback2) const;
+ void create(bool isDirectory,
+ callback &callback) const;
+
+ void destroy(callback &callback, bool destroyDir) const;
+ void renameFolder(const mail::folder *newParent, std::string newName,
+ callback::folderList &callback1,
+ callback &callback2) const;
+ mail::folder *clone() const;
+ std::string toString() const;
+ void open(callback &openCallback,
+ snapshot *restoreSnapshot,
+ callback::folder &folderCallback) const;
+};
+
+// Special folder paths
+
+#define FOLDER_SUBSCRIBED "/subscribed" // Subscribed newsrc folders
+
+#define FOLDER_NEWSRC "/newsrc" // All newsgroups in newsrc
+
+#define FOLDER_CHECKNEW "/newgroups" // New newsgroups
+
+#define FOLDER_REFRESH "/refresh" // Refresh newsgroup list
+
+LIBMAIL_END
+#endif