diff options
Diffstat (limited to 'Swiften/VCards')
| -rw-r--r-- | Swiften/VCards/GetVCardRequest.h | 4 | ||||
| -rw-r--r-- | Swiften/VCards/SConscript | 1 | ||||
| -rw-r--r-- | Swiften/VCards/UnitTest/VCardManagerTest.cpp | 34 | ||||
| -rw-r--r-- | Swiften/VCards/VCardFileStorage.cpp | 129 | ||||
| -rw-r--r-- | Swiften/VCards/VCardFileStorage.h | 38 | ||||
| -rw-r--r-- | Swiften/VCards/VCardManager.cpp | 8 | ||||
| -rw-r--r-- | Swiften/VCards/VCardManager.h | 6 | ||||
| -rw-r--r-- | Swiften/VCards/VCardMemoryStorage.h | 4 | ||||
| -rw-r--r-- | Swiften/VCards/VCardStorage.cpp | 4 | 
9 files changed, 30 insertions, 198 deletions
| diff --git a/Swiften/VCards/GetVCardRequest.h b/Swiften/VCards/GetVCardRequest.h index 93e4871..dc65773 100644 --- a/Swiften/VCards/GetVCardRequest.h +++ b/Swiften/VCards/GetVCardRequest.h @@ -6,8 +6,8 @@  #pragma once -#include "Swiften/Queries/GenericRequest.h" -#include "Swiften/Elements/VCard.h" +#include <Swiften/Queries/GenericRequest.h> +#include <Swiften/Elements/VCard.h>  namespace Swift { diff --git a/Swiften/VCards/SConscript b/Swiften/VCards/SConscript index e980ba3..c20c17d 100644 --- a/Swiften/VCards/SConscript +++ b/Swiften/VCards/SConscript @@ -3,6 +3,5 @@ Import("swiften_env")  objects = swiften_env.SwiftenObject([  			"VCardManager.cpp",  			"VCardStorage.cpp", -			"VCardFileStorage.cpp",  		])  swiften_env.Append(SWIFTEN_OBJECTS = [objects]) diff --git a/Swiften/VCards/UnitTest/VCardManagerTest.cpp b/Swiften/VCards/UnitTest/VCardManagerTest.cpp index 9274639..bea93eb 100644 --- a/Swiften/VCards/UnitTest/VCardManagerTest.cpp +++ b/Swiften/VCards/UnitTest/VCardManagerTest.cpp @@ -4,7 +4,7 @@   * See Documentation/Licenses/GPLv3.txt for more information.   */ -#include "Swiften/Base/ByteArray.h" +#include <Swiften/Base/ByteArray.h>  #include <cppunit/extensions/HelperMacros.h>  #include <cppunit/extensions/TestFactoryRegistry.h> @@ -12,10 +12,10 @@  #include <boost/bind.hpp>  #include <boost/smart_ptr/make_shared.hpp> -#include "Swiften/VCards/VCardManager.h" -#include "Swiften/VCards/VCardMemoryStorage.h" -#include "Swiften/Queries/IQRouter.h" -#include "Swiften/Client/DummyStanzaChannel.h" +#include <Swiften/VCards/VCardManager.h> +#include <Swiften/VCards/VCardMemoryStorage.h> +#include <Swiften/Queries/IQRouter.h> +#include <Swiften/Client/DummyStanzaChannel.h>  using namespace Swift; @@ -48,7 +48,7 @@ class VCardManagerTest : public CppUnit::TestFixture {  		}  		void testGet_NewVCardRequestsVCard() { -			std::auto_ptr<VCardManager> testling = createManager(); +			boost::shared_ptr<VCardManager> testling = createManager();  			VCard::ref result = testling->getVCardAndRequestWhenNeeded(JID("foo@bar.com/baz"));  			CPPUNIT_ASSERT(!result); @@ -57,7 +57,7 @@ class VCardManagerTest : public CppUnit::TestFixture {  		}  		void testGet_ExistingVCard() { -			std::auto_ptr<VCardManager> testling = createManager(); +			boost::shared_ptr<VCardManager> testling = createManager();  			VCard::ref vcard(new VCard());  			vcard->setFullName("Foo Bar");  			vcardStorage->setVCard(JID("foo@bar.com/baz"), vcard); @@ -69,7 +69,7 @@ class VCardManagerTest : public CppUnit::TestFixture {  		}  		void testRequest_RequestsVCard() { -			std::auto_ptr<VCardManager> testling = createManager(); +			boost::shared_ptr<VCardManager> testling = createManager();  			testling->requestVCard(JID("foo@bar.com/baz"));  			CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(stanzaChannel->sentStanzas.size())); @@ -77,7 +77,7 @@ class VCardManagerTest : public CppUnit::TestFixture {  		}  		void testRequest_ReceiveEmitsNotification() { -			std::auto_ptr<VCardManager> testling = createManager(); +			boost::shared_ptr<VCardManager> testling = createManager();  			testling->requestVCard(JID("foo@bar.com/baz"));  			stanzaChannel->onIQReceived(createVCardResult()); @@ -90,7 +90,7 @@ class VCardManagerTest : public CppUnit::TestFixture {  		}  		void testRequest_Error() { -			std::auto_ptr<VCardManager> testling = createManager(); +			boost::shared_ptr<VCardManager> testling = createManager();  			testling->requestVCard(JID("foo@bar.com/baz"));  			stanzaChannel->onIQReceived(IQ::createError(JID("baz@fum.com/foo"), stanzaChannel->sentStanzas[0]->getID())); @@ -101,7 +101,7 @@ class VCardManagerTest : public CppUnit::TestFixture {  		}  		void testRequest_VCardAlreadyRequested() { -			std::auto_ptr<VCardManager> testling = createManager(); +			boost::shared_ptr<VCardManager> testling = createManager();  			testling->requestVCard(JID("foo@bar.com/baz"));  			VCard::ref result = testling->getVCardAndRequestWhenNeeded(JID("foo@bar.com/baz")); @@ -110,7 +110,7 @@ class VCardManagerTest : public CppUnit::TestFixture {  		}  		void testRequest_AfterPreviousRequest() { -			std::auto_ptr<VCardManager> testling = createManager(); +			boost::shared_ptr<VCardManager> testling = createManager();  			testling->requestVCard(JID("foo@bar.com/baz"));  			stanzaChannel->onIQReceived(createVCardResult());  			testling->requestVCard(JID("foo@bar.com/baz")); @@ -120,7 +120,7 @@ class VCardManagerTest : public CppUnit::TestFixture {  		}  		void testRequestOwnVCard() { -			std::auto_ptr<VCardManager> testling = createManager(); +			boost::shared_ptr<VCardManager> testling = createManager();  			testling->requestVCard(ownJID);  			stanzaChannel->onIQReceived(createOwnVCardResult()); @@ -136,7 +136,7 @@ class VCardManagerTest : public CppUnit::TestFixture {  		}  		void testCreateSetVCardRequest() { -			std::auto_ptr<VCardManager> testling = createManager(); +			boost::shared_ptr<VCardManager> testling = createManager();  			VCard::ref vcard = boost::make_shared<VCard>();  			vcard->setFullName("New Name");  			SetVCardRequest::ref request = testling->createSetVCardRequest(vcard); @@ -150,7 +150,7 @@ class VCardManagerTest : public CppUnit::TestFixture {  		}  		void testCreateSetVCardRequest_Error() { -			std::auto_ptr<VCardManager> testling = createManager(); +			boost::shared_ptr<VCardManager> testling = createManager();  			VCard::ref vcard = boost::make_shared<VCard>();  			vcard->setFullName("New Name");  			SetVCardRequest::ref request = testling->createSetVCardRequest(vcard); @@ -162,8 +162,8 @@ class VCardManagerTest : public CppUnit::TestFixture {  		}  	private: -		std::auto_ptr<VCardManager> createManager() { -			std::auto_ptr<VCardManager> manager(new VCardManager(ownJID, iqRouter, vcardStorage)); +		boost::shared_ptr<VCardManager> createManager() { +			boost::shared_ptr<VCardManager> manager(new VCardManager(ownJID, iqRouter, vcardStorage));  			manager->onVCardChanged.connect(boost::bind(&VCardManagerTest::handleVCardChanged, this, _1, _2));  			manager->onOwnVCardChanged.connect(boost::bind(&VCardManagerTest::handleOwnVCardChanged, this, _1));  			return manager; diff --git a/Swiften/VCards/VCardFileStorage.cpp b/Swiften/VCards/VCardFileStorage.cpp deleted file mode 100644 index a246838..0000000 --- a/Swiften/VCards/VCardFileStorage.cpp +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (c) 2010 Remko Tronçon - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. - */ - -#include "Swiften/VCards/VCardFileStorage.h" - -#include <boost/filesystem/fstream.hpp> - -#include <Swiften/Base/String.h> -#include <Swiften/StringCodecs/Hexify.h> -#include <Swiften/StringCodecs/SHA1.h> -#include <Swiften/Base/foreach.h> -#include "Swiften/JID/JID.h" -#include "Swiften/Base/ByteArray.h" -#include "Swiften/Elements/VCard.h" -#include "Swiften/Serializer/PayloadSerializers/VCardSerializer.h" -#include "Swiften/Parser/PayloadParsers/UnitTest/PayloadParserTester.h" -#include "Swiften/Parser/PayloadParsers/VCardParser.h" - -namespace Swift { - -VCardFileStorage::VCardFileStorage(boost::filesystem::path dir) : vcardsPath(dir) { -	cacheFile = vcardsPath / "phashes"; -	if (boost::filesystem::exists(cacheFile)) { -		try { -			boost::filesystem::ifstream file(cacheFile); -			std::string line; -			if (file.is_open()) { -				while (!file.eof()) { -					getline(file, line); -					std::pair<std::string, std::string> r = String::getSplittedAtFirst(line, ' '); -					JID jid(r.second); -					if (jid.isValid()) { -						photoHashes.insert(std::make_pair(jid, r.first)); -					} -					else if (!r.first.empty() || !r.second.empty()) { -						std::cerr << "Invalid entry in phashes file" << std::endl; -					} -				} -			} -		} -		catch (...) { -			std::cerr << "Error reading phashes file" << std::endl; -		} -	} -} - -boost::shared_ptr<VCard> VCardFileStorage::getVCard(const JID& jid) const { -	boost::filesystem::path vcardPath(getVCardPath(jid)); -	if (boost::filesystem::exists(vcardPath)) { -		ByteArray data; -		data.readFromFile(vcardPath.string()); - -		VCardParser parser; -		PayloadParserTester tester(&parser); -		tester.parse(data.toString()); -		return boost::dynamic_pointer_cast<VCard>(parser.getPayload()); -	} -	else { -		return boost::shared_ptr<VCard>(); -	} -} - -void VCardFileStorage::setVCard(const JID& jid, VCard::ref v) { -	boost::filesystem::path vcardPath(getVCardPath(jid)); -	if (!boost::filesystem::exists(vcardPath.parent_path())) { -		try { -			boost::filesystem::create_directories(vcardPath.parent_path()); -		} -		catch (const boost::filesystem::filesystem_error& e) { -			std::cerr << "ERROR: " << e.what() << std::endl; -		} -	} -	boost::filesystem::ofstream file(getVCardPath(jid)); -	file << VCardSerializer().serializePayload(v); -	file.close(); -	getAndUpdatePhotoHash(jid, v); -} - -boost::filesystem::path VCardFileStorage::getVCardPath(const JID& jid) const { -	std::string file(jid.toString()); -	String::replaceAll(file, '/', "%2f"); -	return boost::filesystem::path(vcardsPath / (file + ".xml")); -} - -std::string VCardFileStorage::getPhotoHash(const JID& jid) const { -	PhotoHashMap::const_iterator i = photoHashes.find(jid); -	if (i != photoHashes.end()) { -		return i->second; -	} -	else { -		VCard::ref vCard = getVCard(jid); -		return getAndUpdatePhotoHash(jid, vCard); -	} -} - -std::string VCardFileStorage::getAndUpdatePhotoHash(const JID& jid, VCard::ref vCard) const { -	std::string hash; -	if (vCard && !vCard->getPhoto().isEmpty()) { -		hash = Hexify::hexify(SHA1::getHash(vCard->getPhoto())); -	} -	std::pair<PhotoHashMap::iterator, bool> r = photoHashes.insert(std::make_pair(jid, hash)); -	if (r.second) { -		savePhotoHashes(); -	} -	else if (r.first->second != hash) { -		r.first->second = hash; -		savePhotoHashes(); -	} -	return hash; -} - -void VCardFileStorage::savePhotoHashes() const { -	try { -		boost::filesystem::ofstream file(cacheFile); -		for (PhotoHashMap::const_iterator i = photoHashes.begin(); i != photoHashes.end(); ++i) { -			file << i->second << " " << i->first.toString() << std::endl; -		} -		file.close(); -	} -	catch (...) { -		std::cerr << "Error writing vcards file" << std::endl; -	} -} - - -} diff --git a/Swiften/VCards/VCardFileStorage.h b/Swiften/VCards/VCardFileStorage.h deleted file mode 100644 index 26bf4b2..0000000 --- a/Swiften/VCards/VCardFileStorage.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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.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; -	}; -} diff --git a/Swiften/VCards/VCardManager.cpp b/Swiften/VCards/VCardManager.cpp index b9602ab..52447a1 100644 --- a/Swiften/VCards/VCardManager.cpp +++ b/Swiften/VCards/VCardManager.cpp @@ -4,13 +4,13 @@   * See Documentation/Licenses/GPLv3.txt for more information.   */ -#include "Swiften/VCards/VCardManager.h" +#include <Swiften/VCards/VCardManager.h>  #include <boost/bind.hpp> -#include "Swiften/JID/JID.h" -#include "Swiften/VCards/VCardStorage.h" -#include "Swiften/VCards/GetVCardRequest.h" +#include <Swiften/JID/JID.h> +#include <Swiften/VCards/VCardStorage.h> +#include <Swiften/VCards/GetVCardRequest.h>  namespace Swift { diff --git a/Swiften/VCards/VCardManager.h b/Swiften/VCards/VCardManager.h index 1dd16ae..29fe32c 100644 --- a/Swiften/VCards/VCardManager.h +++ b/Swiften/VCards/VCardManager.h @@ -8,9 +8,9 @@  #include <set> -#include "Swiften/JID/JID.h" -#include "Swiften/Elements/VCard.h" -#include "Swiften/Elements/ErrorPayload.h" +#include <Swiften/JID/JID.h> +#include <Swiften/Elements/VCard.h> +#include <Swiften/Elements/ErrorPayload.h>  #include <Swiften/VCards/SetVCardRequest.h>  #include <Swiften/Base/boost_bsignals.h> diff --git a/Swiften/VCards/VCardMemoryStorage.h b/Swiften/VCards/VCardMemoryStorage.h index b2e99c6..ade9c89 100644 --- a/Swiften/VCards/VCardMemoryStorage.h +++ b/Swiften/VCards/VCardMemoryStorage.h @@ -9,8 +9,8 @@  #include <boost/shared_ptr.hpp>  #include <map> -#include "Swiften/JID/JID.h" -#include "Swiften/VCards/VCardStorage.h" +#include <Swiften/JID/JID.h> +#include <Swiften/VCards/VCardStorage.h>  namespace Swift {  	class VCardMemoryStorage : public VCardStorage { diff --git a/Swiften/VCards/VCardStorage.cpp b/Swiften/VCards/VCardStorage.cpp index b14ee60..900f1e5 100644 --- a/Swiften/VCards/VCardStorage.cpp +++ b/Swiften/VCards/VCardStorage.cpp @@ -4,7 +4,7 @@   * See Documentation/Licenses/GPLv3.txt for more information.   */ -#include "Swiften/VCards/VCardStorage.h" +#include <Swiften/VCards/VCardStorage.h>  #include <Swiften/StringCodecs/Hexify.h>  #include <Swiften/StringCodecs/SHA1.h> @@ -16,7 +16,7 @@ VCardStorage::~VCardStorage() {  std::string VCardStorage::getPhotoHash(const JID& jid) const {  	VCard::ref vCard = getVCard(jid); -	if (vCard && !vCard->getPhoto().isEmpty()) { +	if (vCard && !vCard->getPhoto().empty()) {  		return Hexify::hexify(SHA1::getHash(vCard->getPhoto()));  	}  	else { | 
 Swift
 Swift