Added getCapabilities() on messaging::store.
This commit is contained in:
parent
9207ff73eb
commit
cc51a32255
@ -6,6 +6,9 @@ VERSION 0.6.0-cvs
|
||||
|
||||
* Finished 'maildir' implementation. This is EXPERIMENTAL!
|
||||
|
||||
* Added a getCapabilities() function on 'vmime::messaging::store' to
|
||||
quickly check which features are available.
|
||||
|
||||
2004-12-19 Vincent Richard <vincent@vincent-richard.net>
|
||||
|
||||
* Added chaining in exception handling. vmime::exception::other() returns
|
||||
|
@ -360,7 +360,7 @@ opts.AddOptions(
|
||||
+ 'This option has no effect if "with_messaging" is not activated.\n'
|
||||
+ 'Separate protocols with spaces; string must be quoted with ".\n'
|
||||
+ 'Available protocols: pop3, smtp, imap, maildir.',
|
||||
'"pop3 smtp imap"'
|
||||
'"pop3 smtp imap maildir"'
|
||||
),
|
||||
(
|
||||
'with_platforms',
|
||||
|
@ -125,7 +125,7 @@ folder* IMAPStore::getFolder(const folder::path& path)
|
||||
}
|
||||
|
||||
|
||||
const bool IMAPStore::isValidFolderName(const folder::path::component& /* name */)
|
||||
const bool IMAPStore::isValidFolderName(const folder::path::component& /* name */) const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@ -219,6 +219,19 @@ void IMAPStore::unregisterFolder(IMAPFolder* folder)
|
||||
}
|
||||
|
||||
|
||||
const int IMAPStore::getCapabilities() const
|
||||
{
|
||||
return (CAPABILITY_CREATE_FOLDER |
|
||||
CAPABILITY_RENAME_FOLDER |
|
||||
CAPABILITY_ADD_MESSAGE |
|
||||
CAPABILITY_COPY_MESSAGE |
|
||||
CAPABILITY_DELETE_MESSAGE |
|
||||
CAPABILITY_PARTIAL_FETCH |
|
||||
CAPABILITY_MESSAGE_FLAGS |
|
||||
CAPABILITY_EXTRACT_PART);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Service infos
|
||||
|
@ -57,7 +57,7 @@ public:
|
||||
folder* getRootFolder();
|
||||
folder* getFolder(const folder::path& path);
|
||||
|
||||
const bool isValidFolderName(const folder::path::component& name);
|
||||
const bool isValidFolderName(const folder::path::component& name) const;
|
||||
|
||||
static const serviceInfos& getInfosInstance();
|
||||
const serviceInfos& getInfos() const;
|
||||
@ -68,6 +68,8 @@ public:
|
||||
|
||||
void noop();
|
||||
|
||||
const int getCapabilities() const;
|
||||
|
||||
private:
|
||||
|
||||
// Connection
|
||||
|
@ -82,7 +82,7 @@ folder* POP3Store::getFolder(const folder::path& path)
|
||||
}
|
||||
|
||||
|
||||
const bool POP3Store::isValidFolderName(const folder::path::component& /* name */)
|
||||
const bool POP3Store::isValidFolderName(const folder::path::component& /* name */) const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@ -565,6 +565,12 @@ void POP3Store::unregisterFolder(POP3Folder* folder)
|
||||
}
|
||||
|
||||
|
||||
const int POP3Store::getCapabilities() const
|
||||
{
|
||||
return (CAPABILITY_DELETE_MESSAGE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Service infos
|
||||
|
||||
|
@ -51,7 +51,7 @@ public:
|
||||
folder* getRootFolder();
|
||||
folder* getFolder(const folder::path& path);
|
||||
|
||||
const bool isValidFolderName(const folder::path::component& name);
|
||||
const bool isValidFolderName(const folder::path::component& name) const;
|
||||
|
||||
static const serviceInfos& getInfosInstance();
|
||||
const serviceInfos& getInfos() const;
|
||||
@ -62,6 +62,8 @@ public:
|
||||
|
||||
void noop();
|
||||
|
||||
const int getCapabilities() const;
|
||||
|
||||
private:
|
||||
|
||||
static const bool isSuccessResponse(const string& buffer);
|
||||
|
@ -308,7 +308,7 @@ public:
|
||||
*/
|
||||
virtual store* getStore() = 0;
|
||||
|
||||
/** Possible fetchable objects.
|
||||
/** Fetchable objects.
|
||||
*/
|
||||
enum FetchOptions
|
||||
{
|
||||
|
@ -75,7 +75,7 @@ folder* maildirStore::getFolder(const folder::path& path)
|
||||
}
|
||||
|
||||
|
||||
const bool maildirStore::isValidFolderName(const folder::path::component& name)
|
||||
const bool maildirStore::isValidFolderName(const folder::path::component& name) const
|
||||
{
|
||||
if (!platformDependant::getHandler()->getFileSystemFactory()->isValidPathComponent(name))
|
||||
return false;
|
||||
@ -154,6 +154,19 @@ const utility::path& maildirStore::getFileSystemPath() const
|
||||
}
|
||||
|
||||
|
||||
const int maildirStore::getCapabilities() const
|
||||
{
|
||||
return (CAPABILITY_CREATE_FOLDER |
|
||||
CAPABILITY_RENAME_FOLDER |
|
||||
CAPABILITY_ADD_MESSAGE |
|
||||
CAPABILITY_COPY_MESSAGE |
|
||||
CAPABILITY_DELETE_MESSAGE |
|
||||
CAPABILITY_PARTIAL_FETCH |
|
||||
CAPABILITY_MESSAGE_FLAGS |
|
||||
CAPABILITY_EXTRACT_PART);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Service infos
|
||||
|
@ -56,7 +56,7 @@ public:
|
||||
folder* getRootFolder();
|
||||
folder* getFolder(const folder::path& path);
|
||||
|
||||
const bool isValidFolderName(const folder::path::component& name);
|
||||
const bool isValidFolderName(const folder::path::component& name) const;
|
||||
|
||||
static const serviceInfos& getInfosInstance();
|
||||
const serviceInfos& getInfos() const;
|
||||
@ -69,6 +69,8 @@ public:
|
||||
|
||||
const utility::path& getFileSystemPath() const;
|
||||
|
||||
const int getCapabilities() const;
|
||||
|
||||
private:
|
||||
|
||||
void registerFolder(maildirFolder* folder);
|
||||
|
@ -50,7 +50,7 @@ public:
|
||||
virtual folder* getDefaultFolder() = 0;
|
||||
|
||||
/** Return the root folder. This is protocol dependant
|
||||
* and usually is the user's mail drop root folder
|
||||
* and usually is the user's mail drop root folder.
|
||||
*
|
||||
* @return root folder
|
||||
*/
|
||||
@ -68,7 +68,27 @@ public:
|
||||
*
|
||||
* @return true if the specified folder name is valid, false otherwise
|
||||
*/
|
||||
virtual const bool isValidFolderName(const folder::path::component& name) = 0;
|
||||
virtual const bool isValidFolderName(const folder::path::component& name) const = 0;
|
||||
|
||||
/** Store capabilities. */
|
||||
enum Capabilities
|
||||
{
|
||||
CAPABILITY_CREATE_FOLDER = (1 << 0), /**< Can create folders. */
|
||||
CAPABILITY_RENAME_FOLDER = (1 << 1), /**< Can rename folders. */
|
||||
CAPABILITY_ADD_MESSAGE = (1 << 2), /**< Can append message to folders. */
|
||||
CAPABILITY_COPY_MESSAGE = (1 << 3), /**< Can copy messages from a folder to another one. */
|
||||
CAPABILITY_DELETE_MESSAGE = (1 << 4), /**< Can delete messages. */
|
||||
CAPABILITY_PARTIAL_FETCH = (1 << 5), /**< Is partial fetch supported? */
|
||||
CAPABILITY_MESSAGE_FLAGS = (1 << 6), /**< Can set flags on messages. */
|
||||
CAPABILITY_EXTRACT_PART = (1 << 7) /**< Can extract a specific part of the message. */
|
||||
};
|
||||
|
||||
/** Return the features supported by this service. This is
|
||||
* a combination of store::CAPABILITY_xxx flags.
|
||||
*
|
||||
* @return features supported by this service
|
||||
*/
|
||||
virtual const int getCapabilities() const = 0;
|
||||
|
||||
|
||||
const Type getType() const { return (TYPE_STORE); }
|
||||
|
Loading…
Reference in New Issue
Block a user