libbnetapi: Disallow instantiation of BUrlRequest subclasses directly
This API change forces all creation of BUrlRequest to be done via BUrlProtocolRoster::MakeRequest(). This allows the structure of protocol addons to be altered without breaking ABI for client applications. Change-Id: I1785c9136c50d19eaa9e57cb9d259ed8d88a5b56 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3080 Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
committed by
Adrien Destugues
parent
26ca2e3226
commit
e67a4284c0
@@ -11,17 +11,21 @@
|
||||
#define _B_DATA_REQUEST_H_
|
||||
|
||||
|
||||
#include <UrlProtocolRoster.h>
|
||||
#include <UrlRequest.h>
|
||||
|
||||
|
||||
class BDataRequest: public BUrlRequest {
|
||||
public:
|
||||
const BUrlResult& Result() const;
|
||||
private:
|
||||
friend class BUrlProtocolRoster;
|
||||
|
||||
BDataRequest(const BUrl& url,
|
||||
BUrlProtocolListener* listener = NULL,
|
||||
BUrlContext* context = NULL);
|
||||
const BUrlResult& Result() const;
|
||||
private:
|
||||
status_t _ProtocolLoop();
|
||||
|
||||
status_t _ProtocolLoop();
|
||||
private:
|
||||
BUrlResult fResult;
|
||||
};
|
||||
|
||||
@@ -10,19 +10,23 @@
|
||||
|
||||
|
||||
#include <UrlRequest.h>
|
||||
#include <UrlProtocolRoster.h>
|
||||
|
||||
|
||||
class BFileRequest : public BUrlRequest {
|
||||
public:
|
||||
BFileRequest(const BUrl& url,
|
||||
BUrlProtocolListener* listener = NULL,
|
||||
BUrlContext* context = NULL);
|
||||
virtual ~BFileRequest();
|
||||
|
||||
const BUrlResult& Result() const;
|
||||
void SetDisableListener(bool disable);
|
||||
void SetDisableListener(bool disable);
|
||||
|
||||
private:
|
||||
friend class BUrlProtocolRoster;
|
||||
|
||||
BFileRequest(const BUrl& url,
|
||||
BUrlProtocolListener* listener = NULL,
|
||||
BUrlContext* context = NULL);
|
||||
|
||||
status_t _ProtocolLoop();
|
||||
private:
|
||||
BUrlResult fResult;
|
||||
|
||||
@@ -9,13 +9,11 @@
|
||||
#include <deque>
|
||||
|
||||
#include <NetworkRequest.h>
|
||||
#include <UrlProtocolRoster.h>
|
||||
|
||||
|
||||
class BGopherRequest : public BNetworkRequest {
|
||||
public:
|
||||
BGopherRequest(const BUrl& url,
|
||||
BUrlProtocolListener* listener = NULL,
|
||||
BUrlContext* context = NULL);
|
||||
virtual ~BGopherRequest();
|
||||
|
||||
status_t Stop();
|
||||
@@ -23,6 +21,12 @@ public:
|
||||
void SetDisableListener(bool disable);
|
||||
|
||||
private:
|
||||
friend class BUrlProtocolRoster;
|
||||
|
||||
BGopherRequest(const BUrl& url,
|
||||
BUrlProtocolListener* listener = NULL,
|
||||
BUrlContext* context = NULL);
|
||||
|
||||
status_t _ProtocolLoop();
|
||||
void _SendRequest();
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <HttpResult.h>
|
||||
#include <NetworkAddress.h>
|
||||
#include <NetworkRequest.h>
|
||||
#include <UrlProtocolRoster.h>
|
||||
|
||||
|
||||
namespace BPrivate {
|
||||
@@ -24,12 +25,6 @@ namespace BPrivate {
|
||||
|
||||
class BHttpRequest : public BNetworkRequest {
|
||||
public:
|
||||
BHttpRequest(const BUrl& url,
|
||||
bool ssl = false,
|
||||
const char* protocolName = "HTTP",
|
||||
BUrlProtocolListener* listener = NULL,
|
||||
BUrlContext* context = NULL);
|
||||
BHttpRequest(const BHttpRequest& other);
|
||||
virtual ~BHttpRequest();
|
||||
|
||||
void SetMethod(const char* const method);
|
||||
@@ -64,6 +59,15 @@ public:
|
||||
static int16 StatusCodeClass(int16 code);
|
||||
|
||||
private:
|
||||
friend class BUrlProtocolRoster;
|
||||
|
||||
BHttpRequest(const BUrl& url,
|
||||
bool ssl = false,
|
||||
const char* protocolName = "HTTP",
|
||||
BUrlProtocolListener* listener = NULL,
|
||||
BUrlContext* context = NULL);
|
||||
BHttpRequest(const BHttpRequest& other);
|
||||
|
||||
void _ResetOptions();
|
||||
status_t _ProtocolLoop();
|
||||
status_t _MakeRequest();
|
||||
|
||||
Reference in New Issue
Block a user