diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-06-20 11:47:21 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-06-20 14:38:58 (GMT) |
commit | 6eb30e0e1f0a8e7ee936f3c006c7f710785653df (patch) | |
tree | 1e72dd6445d7d8d4e06f71c52299260a941a5be6 /Swiften/Avatars/AvatarFileStorage.cpp | |
parent | 6d50c38e2bc6a17afb19effe06d2103f06c8ea1c (diff) | |
download | swift-contrib-6eb30e0e1f0a8e7ee936f3c006c7f710785653df.zip swift-contrib-6eb30e0e1f0a8e7ee936f3c006c7f710785653df.tar.bz2 |
Added vCard-based avatars support.
Diffstat (limited to 'Swiften/Avatars/AvatarFileStorage.cpp')
-rw-r--r-- | Swiften/Avatars/AvatarFileStorage.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Swiften/Avatars/AvatarFileStorage.cpp b/Swiften/Avatars/AvatarFileStorage.cpp new file mode 100644 index 0000000..1348018 --- /dev/null +++ b/Swiften/Avatars/AvatarFileStorage.cpp @@ -0,0 +1,26 @@ +#include "Swiften/Avatars/AvatarFileStorage.h" + +#include <iostream> +#include <boost/filesystem/fstream.hpp> + +namespace Swift { + +AvatarFileStorage::AvatarFileStorage(const boost::filesystem::path& path) : path_(path) { + boost::filesystem::create_directory(path_); +} + +bool AvatarFileStorage::hasAvatar(const String& hash) const { + return boost::filesystem::exists(getAvatarPath(hash)); +} + +void AvatarFileStorage::addAvatar(const String& hash, const ByteArray& avatar) { + boost::filesystem::ofstream file(getAvatarPath(hash), boost::filesystem::ofstream::binary|boost::filesystem::ofstream::out); + file.write(avatar.getData(), avatar.getSize()); + file.close(); +} + +boost::filesystem::path AvatarFileStorage::getAvatarPath(const String& hash) const { + return path_ / hash.getUTF8String(); +} + +} |