Remove RequestBase::start
Requests are always started immediately upon construction. While here, use typed pointers, not void*.
This commit is contained in:
@@ -3,20 +3,22 @@
|
||||
|
||||
#include "request_base.hpp"
|
||||
|
||||
typedef struct uv_loop_s uv_loop_t;
|
||||
|
||||
namespace mbgl {
|
||||
|
||||
class AssetRequestImpl;
|
||||
|
||||
class AssetRequest : public RequestBase {
|
||||
public:
|
||||
AssetRequest(const Resource&, Callback, const std::string& assetRoot);
|
||||
AssetRequest(const Resource&, Callback, uv_loop_t*, const std::string& assetRoot);
|
||||
|
||||
void start(uv_loop_t *loop, std::shared_ptr<const Response> response = nullptr);
|
||||
void cancel();
|
||||
void cancel() override;
|
||||
|
||||
private:
|
||||
~AssetRequest();
|
||||
void *ptr = nullptr;
|
||||
const std::string& assetRoot;
|
||||
|
||||
AssetRequestImpl* impl;
|
||||
friend class AssetRequestImpl;
|
||||
};
|
||||
|
||||
|
||||
@@ -134,12 +134,10 @@ void DefaultFileSource::Impl::startRealRequest(const Resource& resource, std::sh
|
||||
};
|
||||
|
||||
if (algo::starts_with(resource.url, "asset://")) {
|
||||
request->request = new AssetRequest(resource, callback, assetRoot);
|
||||
request->request = new AssetRequest(resource, callback, request->loop, assetRoot);
|
||||
} else {
|
||||
request->request = new HTTPRequest(resource, callback);
|
||||
request->request = new HTTPRequest(resource, callback, request->loop, response);
|
||||
}
|
||||
|
||||
request->request->start(request->loop, response);
|
||||
}
|
||||
|
||||
void DefaultFileSource::Impl::cancel(Request* req) {
|
||||
|
||||
@@ -3,23 +3,23 @@
|
||||
|
||||
#include "request_base.hpp"
|
||||
|
||||
typedef struct uv_loop_s uv_loop_t;
|
||||
|
||||
namespace mbgl {
|
||||
|
||||
struct Resource;
|
||||
class HTTPRequestImpl;
|
||||
|
||||
class HTTPRequest : public RequestBase {
|
||||
public:
|
||||
HTTPRequest(const Resource&, Callback);
|
||||
|
||||
void start(uv_loop_t *loop, std::shared_ptr<const Response> response = nullptr);
|
||||
void cancel();
|
||||
HTTPRequest(const Resource&, Callback, uv_loop_t*, std::shared_ptr<const Response> = nullptr);
|
||||
|
||||
void cancel() override;
|
||||
void retryImmediately();
|
||||
|
||||
private:
|
||||
~HTTPRequest();
|
||||
void *ptr = nullptr;
|
||||
|
||||
HTTPRequestImpl* impl;
|
||||
friend class HTTPRequestImpl;
|
||||
};
|
||||
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
#include <memory>
|
||||
#include <functional>
|
||||
|
||||
typedef struct uv_loop_s uv_loop_t;
|
||||
|
||||
namespace mbgl {
|
||||
|
||||
struct Resource;
|
||||
@@ -19,19 +17,16 @@ public:
|
||||
using Callback = std::function<void (std::shared_ptr<const Response> response, FileCache::Hint hint)>;
|
||||
|
||||
RequestBase(const Resource& resource_, Callback notify_)
|
||||
: notify(notify_)
|
||||
, resource(resource_) {
|
||||
: resource(resource_)
|
||||
, notify(notify_) {
|
||||
}
|
||||
|
||||
virtual ~RequestBase() = default;
|
||||
|
||||
virtual void start(uv_loop_t *loop, std::shared_ptr<const Response> response = nullptr) = 0;
|
||||
virtual void cancel() = 0;
|
||||
|
||||
Callback notify;
|
||||
|
||||
protected:
|
||||
const Resource& resource;
|
||||
Callback notify;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user