/* * 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 #include #include #include #include "Swiften/Base/ByteArray.h" #include "Swiften/Avatars/AvatarStorage.h" namespace Swift { class AvatarFileStorage : public AvatarStorage { public: AvatarFileStorage(const boost::filesystem::path& avatarsDir, const boost::filesystem::path& avatarsFile); virtual bool hasAvatar(const std::string& hash) const; virtual void addAvatar(const std::string& hash, const ByteArray& avatar); virtual ByteArray getAvatar(const std::string& hash) const; virtual boost::filesystem::path getAvatarPath(const std::string& hash) const; virtual void setAvatarForJID(const JID& jid, const std::string& hash); virtual std::string getAvatarForJID(const JID& jid) const; private: void saveJIDAvatars(); private: boost::filesystem::path avatarsDir; boost::filesystem::path avatarsFile; typedef std::map JIDAvatarMap; JIDAvatarMap jidAvatars; }; }