diff options
Diffstat (limited to 'Swift/Controllers/Storages/VCardFileStorage.h')
| -rw-r--r-- | Swift/Controllers/Storages/VCardFileStorage.h | 38 | 
1 files changed, 38 insertions, 0 deletions
diff --git a/Swift/Controllers/Storages/VCardFileStorage.h b/Swift/Controllers/Storages/VCardFileStorage.h new file mode 100644 index 0000000..ba422f4 --- /dev/null +++ b/Swift/Controllers/Storages/VCardFileStorage.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include <boost/shared_ptr.hpp> +#include <boost/filesystem/path.hpp> +#include <string> +#include <map> + +#include "Swiften/VCards/VCardStorage.h" + +namespace Swift { +	class VCardFileStorage : public VCardStorage { +		public: +			VCardFileStorage(boost::filesystem::path dir); + +			virtual VCard::ref getVCard(const JID& jid) const; +			virtual void setVCard(const JID& jid, VCard::ref v); + +			virtual std::string getPhotoHash(const JID&) const; + +		private: +			boost::filesystem::path getVCardPath(const JID&) const; + +			std::string getAndUpdatePhotoHash(const JID& jid, VCard::ref vcard) const; +			void savePhotoHashes() const; + +		private: +			boost::filesystem::path vcardsPath; +			boost::filesystem::path cacheFile; +			typedef std::map<JID, std::string> PhotoHashMap; +			mutable PhotoHashMap photoHashes; +	}; +}  | 
 Swift