summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/VCards/VCardMemoryStorage.h')
-rw-r--r--Swiften/VCards/VCardMemoryStorage.h65
1 files changed, 39 insertions, 26 deletions
diff --git a/Swiften/VCards/VCardMemoryStorage.h b/Swiften/VCards/VCardMemoryStorage.h
index 86ae1b2..9a79edc 100644
--- a/Swiften/VCards/VCardMemoryStorage.h
+++ b/Swiften/VCards/VCardMemoryStorage.h
@@ -1,38 +1,51 @@
/*
- * Copyright (c) 2010-2013 Remko Tronçon
- * Licensed under the GNU General Public License v3.
- * See Documentation/Licenses/GPLv3.txt for more information.
+ * Copyright (c) 2010-2016 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
*/
#pragma once
-#include <boost/shared_ptr.hpp>
#include <map>
+#include <memory>
+#include <Swiften/Base/API.h>
#include <Swiften/JID/JID.h>
#include <Swiften/VCards/VCardStorage.h>
namespace Swift {
- class VCardMemoryStorage : public VCardStorage {
- public:
- VCardMemoryStorage(CryptoProvider* crypto) : VCardStorage(crypto) {}
-
- virtual VCard::ref getVCard(const JID& jid) const {
- VCardMap::const_iterator i = vcards.find(jid);
- if (i != vcards.end()) {
- return i->second;
- }
- else {
- return VCard::ref();
- }
- }
-
- virtual void setVCard(const JID& jid, VCard::ref v) {
- vcards[jid] = v;
- }
-
- private:
- typedef std::map<JID, VCard::ref> VCardMap;
- VCardMap vcards;
- };
+ class SWIFTEN_API VCardMemoryStorage : public VCardStorage {
+ public:
+ VCardMemoryStorage(CryptoProvider* crypto) : VCardStorage(crypto) {}
+
+ virtual VCard::ref getVCard(const JID& jid) const {
+ VCardMap::const_iterator i = vcards.find(jid);
+ if (i != vcards.end()) {
+ return i->second;
+ }
+ else {
+ return VCard::ref();
+ }
+ }
+
+ virtual boost::posix_time::ptime getVCardWriteTime(const JID& jid) const {
+ if (vcardWriteTimes.find(jid) == vcardWriteTimes.end()) {
+ return boost::posix_time::ptime();
+ }
+ else {
+ return vcardWriteTimes.at(jid);
+ }
+ }
+
+ virtual void setVCard(const JID& jid, VCard::ref v) {
+ vcards[jid] = v;
+ vcardWriteTimes[jid] = boost::posix_time::second_clock::universal_time();
+ }
+
+ private:
+ typedef std::map<JID, VCard::ref> VCardMap;
+ typedef std::map<JID, boost::posix_time::ptime> VCardWriteTimeMap;
+ VCardMap vcards;
+ VCardWriteTimeMap vcardWriteTimes;
+ };
}