diff options
Diffstat (limited to 'libmail/nntpfolder.H')
| -rw-r--r-- | libmail/nntpfolder.H | 100 | 
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 | 
