00001 /* 00002 * Copyright (c) 2010 Remko Tronçon 00003 * Licensed under the GNU General Public License v3. 00004 * See Documentation/Licenses/GPLv3.txt for more information. 00005 */ 00006 00007 #pragma once 00008 00009 #include <Swiften/Avatars/AvatarManager.h> 00010 #include <Swiften/Avatars/CombinedAvatarProvider.h> 00011 00012 namespace Swift { 00013 class MUCRegistry; 00014 class AvatarStorage; 00015 class StanzaChannel; 00016 class VCardManager; 00017 class VCardUpdateAvatarManager; 00018 class VCardAvatarManager; 00019 class OfflineAvatarManager; 00020 00021 class AvatarManagerImpl : public AvatarManager { 00022 public: 00023 AvatarManagerImpl(VCardManager*, StanzaChannel*, AvatarStorage*, MUCRegistry* = NULL); 00024 virtual ~AvatarManagerImpl(); 00025 00026 virtual boost::filesystem::path getAvatarPath(const JID&) const; 00027 virtual ByteArray getAvatar(const JID&) const; 00028 00029 private: 00030 void handleCombinedAvatarChanged(const JID& jid); 00031 00032 00033 private: 00034 CombinedAvatarProvider combinedAvatarProvider; 00035 AvatarStorage* avatarStorage; 00036 VCardUpdateAvatarManager* vcardUpdateAvatarManager; 00037 VCardAvatarManager* vcardAvatarManager; 00038 OfflineAvatarManager* offlineAvatarManager; 00039 }; 00040 }