|
VMime
|
#include <IMAPFolder.hpp>


Additional Inherited Members | |
| Public Types inherited from folder | |
| enum | Modes { MODE_READ_ONLY , MODE_READ_WRITE } |
| typedef vmime::utility::path | path |
| Protected Types inherited from folder | |
| enum | PrivateConstants { TYPE_UNDEFINED = 9999 , FLAG_UNDEFINED = 9999 } |
| Protected Member Functions inherited from folder | |
| folder (const folder &) | |
| folder () | |
| void | notifyMessageChanged (shared_ptr< events::messageChangedEvent > event) |
| void | notifyMessageCount (shared_ptr< events::messageCountEvent > event) |
| void | notifyFolder (shared_ptr< events::folderEvent > event) |
| void | notifyEvent (shared_ptr< events::event > event) |
| Protected Member Functions inherited from object | |
| object () | |
| object (const object &) | |
| object & | operator= (const object &) |
| virtual | ~object () |
IMAP folder implementation.
| ~IMAPFolder | ( | ) |
References close(), and ~IMAPFolder().
Referenced by ~IMAPFolder().
|
virtual |
Add a message to this folder.
| msg | message to add (data: header + body) |
| flags | flags for the new message (if -1, default flags are used) |
| date | date/time for the new message (if NULL, the current time is used) |
| progress | progress listener, or NULL if not used |
| exceptions::net_exception | if an error occurs |
Implements folder.
References addMessage().
Referenced by addMessage(), addMessage(), and IMAPMessage.
|
virtual |
Add a message to this folder.
| is | message to add (data: header + body) |
| size | size of the message to add (in bytes) |
| flags | flags for the new message (if -1, default flags are used) |
| date | date/time for the new message (if NULL, the current time is used) |
| progress | progress listener, or NULL if not used |
| exceptions::net_exception | if an error occurs |
Implements folder.
References addMessage(), IMAPCommand::APPEND(), stringUtils::bytesFromString(), messageSet::empty(), inputStream::eof(), stream::getBlockSize(), getFullPath(), isOpen(), folder::MODE_READ_ONLY, progressListener::progress(), inputStream::read(), progressListener::start(), status(), and progressListener::stop().
|
virtual |
Close this folder.
| expunge | if set to true, deleted messages are expunged |
| exceptions::net_exception | if an error occurs |
Implements folder.
References IMAPCommand::CLOSE(), close(), expunge(), isOpen(), and folder::MODE_READ_ONLY.
Referenced by close(), IMAPMessage, and ~IMAPFolder().
|
virtual |
Copy messages from this folder to another folder.
| dest | destination folder path |
| msgs | index set of messages to copy |
| exceptions::net_exception | if an error occurs |
Implements folder.
References IMAPCommand::COPY(), copyMessages(), messageSet::empty(), isOpen(), and status().
Referenced by copyMessages(), and IMAPMessage.
|
virtual |
Create this folder.
| attribs | attributes of the new folder |
| exceptions::net_exception | if an error occurs |
Implements folder.
References IMAPCommand::CREATE(), create(), exists(), getFullPath(), folderAttributes::getSpecialUse(), folderAttributes::getType(), isOpen(), store::isValidFolderName(), folder::notifyFolder(), folderAttributes::SPECIALUSE_ALL, folderAttributes::SPECIALUSE_ARCHIVE, folderAttributes::SPECIALUSE_DRAFTS, folderAttributes::SPECIALUSE_FLAGGED, folderAttributes::SPECIALUSE_IMPORTANT, folderAttributes::SPECIALUSE_JUNK, folderAttributes::SPECIALUSE_NONE, folderAttributes::SPECIALUSE_SENT, folderAttributes::SPECIALUSE_TRASH, status(), folderAttributes::TYPE_CONTAINS_FOLDERS, and folderEvent::TYPE_CREATED.
Referenced by create(), and IMAPMessage.
|
virtual |
Remove one or more messages from this folder.
| msgs | index set of messages to delete |
| exceptions::net_exception | if an error occurs |
Implements folder.
References deleteMessages(), message::FLAG_DELETED, message::FLAG_MODE_ADD, messageSet::isEmpty(), isOpen(), folder::MODE_READ_ONLY, status(), and IMAPCommand::STORE().
Referenced by deleteMessages(), and IMAPMessage.
|
virtual |
Delete this folder.
The folder should be closed before attempting to delete it.
| exceptions::net_exception | if an error occurs |
Implements folder.
References IMAPCommand::DELETE(), destroy(), getFullPath(), isOpen(), folder::notifyFolder(), status(), and folderEvent::TYPE_DELETED.
Referenced by destroy(), and IMAPMessage.
|
virtual |
|
virtual |
Expunge deleted messages.
| exceptions::net_exception | if an error occurs |
Implements folder.
References IMAPCommand::EXPUNGE(), expunge(), isOpen(), folder::MODE_READ_ONLY, and status().
Referenced by close(), expunge(), and IMAPMessage.
|
virtual |
Fetch objects for the specified message.
| msg | the message |
| attribs | set of attributes to fetch |
| exceptions::net_exception | if an error occurs |
Implements folder.
References fetchMessage(), and fetchMessages().
Referenced by fetchMessage(), and IMAPMessage.
|
virtual |
Fetch objects for the specified messages.
| msg | list of message sequence numbers |
| attribs | set of attributes to fetch |
| progress | progress listener, or NULL if not used |
| exceptions::net_exception | if an error occurs |
Implements folder.
References messageSet::byNumber(), fetchMessages(), isOpen(), progressListener::progress(), progressListener::start(), status(), and progressListener::stop().
Referenced by fetchMessage(), fetchMessages(), and IMAPMessage.
|
virtual |
Get new references to messages in this folder, given either their sequence numbers or UIDs, and fetch objects for them at the same time.
| msgs | index set of messages to retrieve |
| attribs | set of attributes to fetch |
| exceptions::net_exception | if an error occurs |
Implements folder.
References getAndFetchMessages(), messageSet::isEmpty(), isOpen(), status(), and fetchAttributes::UID.
Referenced by getAndFetchMessages(), and IMAPMessage.
|
virtual |
Return the attributes of the folder.
Implements folder.
References folderAttributes::FLAG_HAS_CHILDREN, folderAttributes::FLAG_NO_OPEN, getAttributes(), folderAttributes::setFlags(), folderAttributes::setType(), and folderAttributes::TYPE_CONTAINS_FOLDERS.
Referenced by getAttributes(), and IMAPMessage.
|
virtual |
Return the list of fetchable objects supported by the underlying protocol (see folder::fetchAttributes).
Implements folder.
References fetchAttributes::CONTENT_INFO, fetchAttributes::ENVELOPE, fetchAttributes::FLAGS, fetchAttributes::FULL_HEADER, getFetchCapabilities(), fetchAttributes::IMPORTANCE, fetchAttributes::SIZE, fetchAttributes::STRUCTURE, and fetchAttributes::UID.
Referenced by getFetchCapabilities(), and IMAPMessage.
|
virtual |
Get a new reference to a sub-folder in this folder.
| name | sub-folder name |
| exceptions::net_exception | if an error occurs |
Implements folder.
References getFolder().
Referenced by getFolder(), and IMAPMessage.
|
virtual |
Get the list of all sub-folders in this folder.
| recursive | if set to true, all the descendant are returned. If set to false, only the direct children are returned. |
| exceptions::net_exception | if an error occurs |
Implements folder.
References getFolders(), getFullPath(), isOpen(), IMAPCommand::LIST(), mailbox::mailbox(), and status().
Referenced by getFolders(), and IMAPMessage.
|
virtual |
Return the fully qualified path name of this folder.
Implements folder.
References getFullPath().
Referenced by addMessage(), create(), destroy(), getFolders(), getFullPath(), getStatus(), IMAPMessage, open(), and rename().
| vmime_uint64 getHighestModSequence | ( | ) | const |
Returns the highest modification sequence of this folder, ie the modification sequence of the last message that changed in this folder.
References getHighestModSequence(), and isOpen().
Referenced by getHighestModSequence(), and IMAPMessage.
Get a new reference to a message in this folder, given its number.
| num | message sequence number |
| exceptions::net_exception | if an error occurs |
Implements folder.
References getMessage(), and isOpen().
Referenced by getMessage(), and IMAPMessage.
|
virtual |
Return the number of messages in this folder.
Implements folder.
References getMessageCount(), and isOpen().
Referenced by getMessageCount(), and IMAPMessage.
|
virtual |
Return the sequence numbers of messages whose UID equal or greater than the specified UID.
| uid | the uid of the first message |
| exceptions::net_exception | if an error occurs |
Implements folder.
References getMessageNumbersStartingOnUID(), and IMAPCommand::SEARCH().
Referenced by getMessageNumbersStartingOnUID(), and IMAPMessage.
|
virtual |
Get new references to messages in this folder, given either their sequence numbers or UIDs.
To retrieve messages by their number, use:
Or, to retrieve messages by their UID, use:
| msgs | index set of messages to retrieve |
| exceptions::net_exception | if an error occurs |
Implements folder.
References message::uid::empty(), IMAPCommand::FETCH(), getMessages(), messageSet::isEmpty(), isOpen(), and status().
Referenced by getMessages(), and IMAPMessage.
|
virtual |
Return the mode in which the folder has been open.
Implements folder.
References getMode(), and isOpen().
Referenced by getMode(), and IMAPMessage.
|
virtual |
Return the name of this folder.
Implements folder.
References getName().
Referenced by getName(), and IMAPMessage.
|
virtual |
Return a new folder object referencing the parent folder of this folder.
Implements folder.
References getParent().
Referenced by getParent(), and IMAPMessage.
|
virtual |
Request folder status without opening it.
| exceptions::net_exception | if an error occurs |
Implements folder.
References getFullPath(), getStatus(), IMAPCommand::STATUS(), and status().
Referenced by getStatus(), IMAPMessage, and status().
|
virtual |
Return a reference to the store to which this folder belongs.
Implements folder.
References getStore().
|
virtual |
Return a reference to the store to which this folder belongs.
Implements folder.
References getStore().
Referenced by getStore(), getStore(), and IMAPMessage.
| vmime_uint32 getUIDValidity | ( | ) | const |
Returns the UID validity of the folder for the current session.
If the server is capable of persisting UIDs accross sessions, this value should never change for a folder. If the UID validity differs across sessions, then the UIDs obtained during a previous session may not correspond to the UIDs of the same messages in this session.
References getUIDValidity(), and isOpen().
Referenced by getUIDValidity(), and IMAPMessage.
|
virtual |
Test whether this folder is open.
Implements folder.
References isOpen().
Referenced by addMessage(), close(), copyMessages(), create(), deleteMessages(), destroy(), exists(), expunge(), fetchMessages(), getAndFetchMessages(), getFolders(), getHighestModSequence(), getMessage(), getMessageCount(), getMessages(), getMode(), getUIDValidity(), IMAPMessage, and isOpen().
| void noop | ( | ) |
References IMAPCommand::NOOP(), noop(), and status().
Referenced by IMAPMessage, and noop().
|
virtual |
Open this folder.
| mode | open mode (see folder::Modes) |
| failIfModeIsNotAvailable | if set to false and if the requested mode is not available, a more restricted mode will be selected automatically. If set to true and if the requested mode is not available, the opening will fail. |
| exceptions::net_exception | if an error occurs |
| exceptions::folder_already_open | if the folder is already open in the same session |
Implements folder.
References service::getAuthenticator(), getFullPath(), folder::MODE_READ_ONLY, folder::MODE_READ_WRITE, open(), IMAPCommand::SELECT(), and status().
Referenced by IMAPMessage, and open().
|
virtual |
Rename (move) this folder to another location.
| newPath | new path of the folder |
| exceptions::net_exception | if an error occurs |
Implements folder.
References getFullPath(), path::getLastComponent(), path::isEmpty(), path::isParentOf(), store::isValidFolderName(), folder::notifyFolder(), IMAPCommand::RENAME(), rename(), status(), and folderEvent::TYPE_RENAMED.
Referenced by IMAPMessage, and rename().
|
virtual |
Change the flags for one or more messages in this folder.
| msgs | index set of messages on which to set the flags |
| flags | set of flags (see message::Flags) |
| mode | indicate how to treat old and new flags (see message::FlagsModes) |
| exceptions::net_exception | if an error occurs |
Implements folder.
References setMessageFlags(), status(), and IMAPCommand::STORE().
Referenced by IMAPMessage, and setMessageFlags().
Request folder status without opening it.
| count | will receive the number of messages in the folder |
| unseen | will receive the number of unseen messages in the folder |
| exceptions::net_exception | if an error occurs |
Implements folder.
References vmime::count(), getStatus(), and status().
Referenced by addMessage(), copyMessages(), create(), deleteMessages(), destroy(), expunge(), fetchMessages(), getAndFetchMessages(), getFolders(), getMessages(), getStatus(), IMAPMessage, noop(), open(), rename(), setMessageFlags(), and status().