Remove RequestBase::start

Requests are always started immediately upon construction.

While here, use typed pointers, not void*.
This commit is contained in:
John Firebaugh
2015-04-17 12:37:43 -07:00
parent cdd8f3ac32
commit 8e5fa341eb
8 changed files with 70 additions and 104 deletions

View File

@@ -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;
};

View File

@@ -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) {

View File

@@ -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;
};

View File

@@ -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;
};
}