diff options
author | Kevin Smith <git@kismith.co.uk> | 2012-11-02 21:30:40 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2012-12-23 11:44:45 (GMT) |
commit | 0a1d592c7bc85e537b8aa8425d8cbce7b48f915a (patch) | |
tree | d97a7eb6f7f2d30bc7806bde5ad6e3fff34b4924 /Swift/Controllers/StatusCache.h | |
parent | 8f922ebfe8b1fd8c7d394da0ebeaf02f04c8e48f (diff) | |
download | swift-0a1d592c7bc85e537b8aa8425d8cbce7b48f915a.zip swift-0a1d592c7bc85e537b8aa8425d8cbce7b48f915a.tar.bz2 |
Save recent status messages and allow easy setting.
Change-Id: I5baaa2cf28cbc344bf442c4a74e0c9ff3ba31ea1
Diffstat (limited to 'Swift/Controllers/StatusCache.h')
-rw-r--r-- | Swift/Controllers/StatusCache.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Swift/Controllers/StatusCache.h b/Swift/Controllers/StatusCache.h new file mode 100644 index 0000000..35b3674 --- /dev/null +++ b/Swift/Controllers/StatusCache.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2012 Kevin Smith + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include <string> +#include <utility> +#include <vector> +#include <list> +#include <iostream> + +#include <boost/filesystem/path.hpp> + +#include <Swiften/Elements/StatusShow.h> + +namespace Swift { + class ApplicationPathProvider; + class StatusCache { + public: + typedef std::pair<std::string, StatusShow::Type> PreviousStatus; + public: + StatusCache(ApplicationPathProvider* paths); + ~StatusCache(); + + std::vector<PreviousStatus> getMatches(const std::string& substring, size_t maxCount) const; + void addRecent(const std::string& text, StatusShow::Type type); + private: + void saveRecents(); + void loadRecents(); + private: + boost::filesystem::path path_; + std::list<PreviousStatus> previousStatuses_; + ApplicationPathProvider* paths_; + }; +} + + |