aboutsummaryrefslogtreecommitdiffstats
path: root/src/messaging/maildir
diff options
context:
space:
mode:
Diffstat (limited to 'src/messaging/maildir')
-rw-r--r--src/messaging/maildir/maildirStore.cpp35
1 files changed, 24 insertions, 11 deletions
diff --git a/src/messaging/maildir/maildirStore.cpp b/src/messaging/maildir/maildirStore.cpp
index 7188a281..87204299 100644
--- a/src/messaging/maildir/maildirStore.cpp
+++ b/src/messaging/maildir/maildirStore.cpp
@@ -27,6 +27,13 @@
#include "vmime/platformDependant.hpp"
+// Helpers for service properties
+#define GET_PROPERTY(type, prop) \
+ (sm_infos.getPropertyValue <type>(getSession(), sm_infos.getProperties().prop))
+#define HAS_PROPERTY(prop) \
+ (sm_infos.hasProperty(getSession(), sm_infos.getProperties().prop))
+
+
namespace vmime {
namespace messaging {
namespace maildir {
@@ -108,8 +115,7 @@ void maildirStore::connect()
// Get root directory
utility::fileSystemFactory* fsf = platformDependant::getHandler()->getFileSystemFactory();
- m_fsPath = fsf->stringToPath
- (getSession()->getProperties()[getInfos().getPropertyPrefix() + "server.rootpath"]);
+ m_fsPath = fsf->stringToPath(GET_PROPERTY(string, PROPERTY_SERVER_ROOTPATH));
utility::auto_ptr <utility::file> rootDir = fsf->create(m_fsPath);
@@ -181,10 +187,10 @@ const int maildirStore::getCapabilities() const
CAPABILITY_RENAME_FOLDER |
CAPABILITY_ADD_MESSAGE |
CAPABILITY_COPY_MESSAGE |
- CAPABILITY_DELETE_MESSAGE |
+ CAPABILITY_DELETE_MESSAGE |
CAPABILITY_PARTIAL_FETCH |
CAPABILITY_MESSAGE_FLAGS |
- CAPABILITY_EXTRACT_PART);
+ CAPABILITY_EXTRACT_PART);
}
@@ -207,23 +213,30 @@ const serviceInfos& maildirStore::getInfos() const
}
-const port_t maildirStore::_infos::getDefaultPort() const
+const string maildirStore::_infos::getPropertyPrefix() const
{
- return (0);
+ return "store.maildir.";
}
-const string maildirStore::_infos::getPropertyPrefix() const
+const maildirStore::_infos::props& maildirStore::_infos::getProperties() const
{
- return "store.maildir.";
+ static props p =
+ {
+ property(serviceInfos::property::SERVER_ROOTPATH, serviceInfos::property::FLAG_REQUIRED)
+ };
+
+ return p;
}
-const std::vector <string> maildirStore::_infos::getAvailableProperties() const
+const std::vector <serviceInfos::property> maildirStore::_infos::getAvailableProperties() const
{
- std::vector <string> list;
+ std::vector <property> list;
+ const props& p = getProperties();
- list.push_back("server.rootpath");
+ // Maildir-specific properties
+ list.push_back(p.PROPERTY_SERVER_ROOTPATH);
return (list);
}