haiku/headers/private/netservices2/NetServicesDefs.h
Niels Sascha Reedijk f9d9d20245 NetServices: Add support for Basic authentication
Change-Id: I304104f7096fd935212e1bfa3e988e7945cb5cec
2022-05-29 15:13:54 +01:00

86 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;
};
BString encode_to_base64(const BString& string);
}
}
#endif