summaryrefslogtreecommitdiff
path: root/include/mbgl
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2015-04-13 17:57:45 +0200
committerKonstantin Käfer <mail@kkaefer.com>2015-04-13 17:57:45 +0200
commit16849a341b72c0633be1e3c89498c883d6efb000 (patch)
tree7450e1c745c8dcd48af809a116bf4899cbc33608 /include/mbgl
parent278e6bd556865aa8cad688d4c671d19a1f5e6871 (diff)
downloadqtlocation-mapboxgl-16849a341b72c0633be1e3c89498c883d6efb000.tar.gz
hide Thread<> and separate the Implementation object
Diffstat (limited to 'include/mbgl')
-rw-r--r--include/mbgl/android/native_map_view.hpp5
-rw-r--r--include/mbgl/storage/default/asset_request.hpp2
-rw-r--r--include/mbgl/storage/default/http_request.hpp2
-rw-r--r--include/mbgl/storage/default/shared_request_base.hpp6
-rw-r--r--include/mbgl/storage/default/sqlite_cache.hpp30
-rw-r--r--include/mbgl/storage/default_file_source.hpp29
6 files changed, 19 insertions, 55 deletions
diff --git a/include/mbgl/android/native_map_view.hpp b/include/mbgl/android/native_map_view.hpp
index 817b6bc8bb..21784f5315 100644
--- a/include/mbgl/android/native_map_view.hpp
+++ b/include/mbgl/android/native_map_view.hpp
@@ -4,7 +4,6 @@
#include <mbgl/map/map.hpp>
#include <mbgl/map/view.hpp>
#include <mbgl/util/noncopyable.hpp>
-#include <mbgl/util/thread.hpp>
#include <mbgl/storage/default/sqlite_cache.hpp>
#include <mbgl/storage/default_file_source.hpp>
@@ -62,8 +61,8 @@ private:
ANativeWindow *window = nullptr;
- mbgl::util::Thread<mbgl::SQLiteCache> fileCache;
- mbgl::util::Thread<mbgl::DefaultFileSource> fileSource;
+ mbgl::SQLiteCache fileCache;
+ mbgl::DefaultFileSource fileSource;
mbgl::Map map;
EGLDisplay display = EGL_NO_DISPLAY;
diff --git a/include/mbgl/storage/default/asset_request.hpp b/include/mbgl/storage/default/asset_request.hpp
index 48f402fefe..48d421c3be 100644
--- a/include/mbgl/storage/default/asset_request.hpp
+++ b/include/mbgl/storage/default/asset_request.hpp
@@ -7,7 +7,7 @@ namespace mbgl {
class AssetRequest : public SharedRequestBase {
public:
- AssetRequest(DefaultFileSource *source, const Resource &resource);
+ AssetRequest(DefaultFileSource::Impl *source, const Resource &resource);
void start(uv_loop_t *loop, std::shared_ptr<const Response> response = nullptr);
void cancel();
diff --git a/include/mbgl/storage/default/http_request.hpp b/include/mbgl/storage/default/http_request.hpp
index 1cd38a8281..54e9a77ef0 100644
--- a/include/mbgl/storage/default/http_request.hpp
+++ b/include/mbgl/storage/default/http_request.hpp
@@ -7,7 +7,7 @@ namespace mbgl {
class HTTPRequest : public SharedRequestBase {
public:
- HTTPRequest(DefaultFileSource *source, const Resource &resource);
+ HTTPRequest(DefaultFileSource::Impl *source, const Resource &resource);
void start(uv_loop_t *loop, std::shared_ptr<const Response> response = nullptr);
void cancel();
diff --git a/include/mbgl/storage/default/shared_request_base.hpp b/include/mbgl/storage/default/shared_request_base.hpp
index 9c5f87b33d..efc78f603d 100644
--- a/include/mbgl/storage/default/shared_request_base.hpp
+++ b/include/mbgl/storage/default/shared_request_base.hpp
@@ -3,7 +3,7 @@
#include <mbgl/storage/resource.hpp>
#include <mbgl/storage/file_cache.hpp>
-#include <mbgl/storage/default_file_source.hpp>
+#include <mbgl/storage/default_file_source_impl.hpp>
#include <mbgl/storage/default/request.hpp>
#include <mbgl/util/util.hpp>
#include <mbgl/util/noncopyable.hpp>
@@ -26,7 +26,7 @@ protected:
MBGL_STORE_THREAD(tid)
public:
- SharedRequestBase(DefaultFileSource *source_, const Resource &resource_)
+ SharedRequestBase(DefaultFileSource::Impl *source_, const Resource &resource_)
: resource(resource_), source(source_) {}
virtual void start(uv_loop_t *loop, std::shared_ptr<const Response> response = nullptr) = 0;
@@ -95,7 +95,7 @@ public:
const Resource resource;
protected:
- DefaultFileSource *source = nullptr;
+ DefaultFileSource::Impl *source = nullptr;
private:
std::set<Request *> observers;
diff --git a/include/mbgl/storage/default/sqlite_cache.hpp b/include/mbgl/storage/default/sqlite_cache.hpp
index 899cc8a892..db672b222b 100644
--- a/include/mbgl/storage/default/sqlite_cache.hpp
+++ b/include/mbgl/storage/default/sqlite_cache.hpp
@@ -2,41 +2,27 @@
#define MBGL_STORAGE_DEFAULT_SQLITE_CACHE
#include <mbgl/storage/file_cache.hpp>
-#include <mbgl/util/run_loop.hpp>
#include <string>
-namespace mapbox { namespace sqlite { class Database; class Statement; } }
-
namespace mbgl {
-class SQLiteCache : public FileCache, protected util::RunLoop {
- friend class util::Thread<SQLiteCache>;
+namespace util {
+template <typename T> class Thread;
+}
-private:
+class SQLiteCache : public FileCache {
+public:
SQLiteCache(const std::string &path = ":memory:");
- ~SQLiteCache();
+ ~SQLiteCache() override;
-public:
// FileCache API
void get(const Resource &resource, Callback callback) override;
void put(const Resource &resource, std::shared_ptr<const Response> response, Hint hint) override;
private:
- void createDatabase();
- void createSchema();
-
- void processGet(const Resource& resource, Callback callback);
- void processPut(const Resource& resource, std::shared_ptr<const Response> response);
- void processRefresh(const Resource& resource, int64_t expires);
-
-private:
- const std::string path;
- std::unique_ptr<::mapbox::sqlite::Database> db;
- std::unique_ptr<::mapbox::sqlite::Statement> getStmt;
- std::unique_ptr<::mapbox::sqlite::Statement> putStmt;
- std::unique_ptr<::mapbox::sqlite::Statement> refreshStmt;
- bool schema = false;
+ class Thread;
+ const std::unique_ptr<util::Thread<Thread>> thread;
};
}
diff --git a/include/mbgl/storage/default_file_source.hpp b/include/mbgl/storage/default_file_source.hpp
index f6028217ea..372dee909b 100644
--- a/include/mbgl/storage/default_file_source.hpp
+++ b/include/mbgl/storage/default_file_source.hpp
@@ -5,22 +5,13 @@
#include <mbgl/storage/file_cache.hpp>
#include <mbgl/util/run_loop.hpp>
-#include <set>
-#include <unordered_map>
-
namespace mbgl {
-class SharedRequestBase;
-
-class DefaultFileSource : public FileSource, protected util::RunLoop {
- friend class util::Thread<DefaultFileSource>;
- friend class SharedRequestBase;
-
-private:
+class DefaultFileSource : public FileSource {
+public:
DefaultFileSource(FileCache *cache, const std::string &root = "");
~DefaultFileSource() override;
-public:
// FileSource API
Request *request(const Resource &resource, uv_loop_t *loop, const Environment &env,
Callback callback) override;
@@ -29,22 +20,10 @@ public:
void abort(const Environment &env) override;
-private:
- void notify(SharedRequestBase *sharedRequest, const std::set<Request *> &observers,
- std::shared_ptr<const Response> response, FileCache::Hint hint);
- SharedRequestBase *find(const Resource &resource);
-
- void processAdd(Request* request);
- void processCancel(Request* request);
- void processResult(const Resource& resource, std::shared_ptr<const Response> response);
- void processAbort(const Environment& env);
-
public:
- const std::string assetRoot;
-
+ class Impl;
private:
- std::unordered_map<Resource, SharedRequestBase *, Resource::Hash> pending;
- FileCache *cache = nullptr;
+ const std::unique_ptr<util::Thread<Impl>> thread;
};
}