aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/pop3/POP3Utils.cpp
diff options
context:
space:
mode:
authorVincent Richard <[email protected]>2013-07-26 12:47:30 +0000
committerVincent Richard <[email protected]>2013-07-26 12:47:30 +0000
commitb0845eff0db7d3aa35c3dc1629d250535d704bc8 (patch)
tree3e317af991e2f02596916cda0a0cb7b552bcd998 /src/net/pop3/POP3Utils.cpp
parentAdded SMTP service properties to allow disabling PIPELINING and CHUNKING exte... (diff)
downloadvmime-b0845eff0db7d3aa35c3dc1629d250535d704bc8.tar.gz
vmime-b0845eff0db7d3aa35c3dc1629d250535d704bc8.zip
Allow messages to be designated either by their number or their UID.
Warning: this is an API-breaking change.
Diffstat (limited to 'src/net/pop3/POP3Utils.cpp')
-rw-r--r--src/net/pop3/POP3Utils.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/net/pop3/POP3Utils.cpp b/src/net/pop3/POP3Utils.cpp
index f239627f..e2722104 100644
--- a/src/net/pop3/POP3Utils.cpp
+++ b/src/net/pop3/POP3Utils.cpp
@@ -73,6 +73,38 @@ void POP3Utils::parseMultiListOrUidlResponse(ref <POP3Response> response, std::m
}
+
+class POP3MessageSetEnumerator : public messageSetEnumerator
+{
+public:
+
+ void enumerateNumberMessageRange(const vmime::net::numberMessageRange& range)
+ {
+ for (int i = range.getFirst(), last = range.getLast() ; i <= last ; ++i)
+ list.push_back(i);
+ }
+
+ void enumerateUIDMessageRange(const vmime::net::UIDMessageRange& /* range */)
+ {
+ // Not supported
+ }
+
+public:
+
+ std::vector <int> list;
+};
+
+
+// static
+const std::vector <int> POP3Utils::messageSetToNumberList(const messageSet& msgs)
+{
+ POP3MessageSetEnumerator en;
+ msgs.enumerate(en);
+
+ return en.list;
+}
+
+
} // pop3
} // net
} // vmime