00001
00002
00003
00004
00005
00006
00007 #pragma once
00008
00009 #include <boost/filesystem/path.hpp>
00010 #include <string>
00011
00012 #include <Swiften/Base/API.h>
00013 #include <Swiften/Base/ByteArray.h>
00014
00015 namespace Swift {
00016 class JID;
00017
00018 class SWIFTEN_API AvatarStorage {
00019 public:
00020 virtual ~AvatarStorage();
00021
00022 virtual bool hasAvatar(const std::string& hash) const = 0;
00023 virtual void addAvatar(const std::string& hash, const ByteArray& avatar) = 0;
00024 virtual ByteArray getAvatar(const std::string& hash) const = 0;
00025 virtual boost::filesystem::path getAvatarPath(const std::string& hash) const = 0;
00026
00027 virtual void setAvatarForJID(const JID& jid, const std::string& hash) = 0;
00028 virtual std::string getAvatarForJID(const JID& jid) const = 0;
00029 };
00030
00031 }