3b2aa6c31b
This is a generic error type that can be used by multiple protocols to describe errors that can occur while processing a request. The error type supports adding an additional error code in cases where there is an underlying system error. The type will be used to describe errors that occur while processing requests by BHttpSession, and it is generally going to be thrown by the receiving BHttpResult. Change-Id: I76c0bbaedd38df8cfb79159c4beae2fbf1350aab
83 lines
1.5 KiB
C++
83 lines
1.5 KiB
C++
/*
|
|
* Copyright 2021 Haiku Inc. All rights reserved.
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
|
|
#ifndef _NETSERVICES_DEFS_H_
|
|
#define _NETSERVICES_DEFS_H_
|
|
|
|
|
|
#include <ErrorsExt.h>
|
|
#include <StringList.h>
|
|
#include <Url.h>
|
|
|
|
|
|
namespace BPrivate {
|
|
|
|
namespace Network {
|
|
|
|
|
|
// Standard exceptions
|
|
class BUnsupportedProtocol : public BError {
|
|
public:
|
|
BUnsupportedProtocol(const char* origin, BUrl url,
|
|
BStringList supportedProtocols);
|
|
BUnsupportedProtocol(BString origin, BUrl url,
|
|
BStringList supportedProtocols);
|
|
|
|
virtual const char* Message() const noexcept override;
|
|
|
|
const BUrl& Url() const;
|
|
const BStringList& SupportedProtocols() const;
|
|
|
|
private:
|
|
BUrl fUrl;
|
|
BStringList fSupportedProtocols;
|
|
};
|
|
|
|
|
|
class BInvalidUrl : public BError {
|
|
public:
|
|
BInvalidUrl(const char* origin, BUrl url);
|
|
BInvalidUrl(BString origin, BUrl url);
|
|
|
|
virtual const char* Message() const noexcept override;
|
|
|
|
const BUrl& Url() const;
|
|
|
|
private:
|
|
BUrl fUrl;
|
|
};
|
|
|
|
|
|
class BNetworkRequestError : public BError {
|
|
public:
|
|
enum ErrorType {
|
|
HostnameError,
|
|
NetworkError,
|
|
ProtocolError,
|
|
SystemError,
|
|
Canceled
|
|
};
|
|
|
|
BNetworkRequestError(const char* origin, ErrorType type,
|
|
status_t errorCode = B_OK);
|
|
|
|
virtual const char* Message() const noexcept override;
|
|
virtual BString DebugMessage() const override;
|
|
|
|
ErrorType Type() const noexcept;
|
|
status_t ErrorCode() const noexcept;
|
|
|
|
private:
|
|
ErrorType fErrorType;
|
|
status_t fErrorCode = B_OK;
|
|
};
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|