tools/apiview/parsers/cpp-api-parser/ParseTests/TestCases/ClassesWithInternalAndDetail.cpp (229 lines of code) (raw):
// Copyright (c) Microsoft Corporation. All rights reserved.
// SPDX-License-Identifier: MIT
#include <chrono>
#include <map>
#include <string>
#include <vector>
#include <memory>
namespace Outer1 {
class OuterClass1 final {
private:
void PFunction1(std::chrono::system_clock::time_point const& time1) {}
int PFunction2(std::chrono::system_clock::time_point const& time1) { return 0; }
public:
};
namespace Cryptography {
class Hash {
protected:
explicit Hash() = default;
public:
void Append(const uint8_t* data, size_t length);
std::vector<uint8_t> Final(const uint8_t* data, size_t length);
std::vector<uint8_t> Final();
virtual ~Hash() = default;
};
class Md5Hash : public Cryptography::Hash {
public:
Md5Hash();
virtual ~Md5Hash();
Md5Hash(const Md5Hash&) = default;
Cryptography::Md5Hash& operator=(const Cryptography::Md5Hash&);
};
} // namespace Cryptography
int Function2(std::chrono::system_clock::time_point const& time1) { return 0; }
namespace _internal {
class OperationStatus {
public:
OperationStatus(const std::string& value);
OperationStatus(std::string&& value);
OperationStatus(const char* value);
bool operator==(const OperationStatus& other);
bool operator!=(const OperationStatus& other);
const std::string& Get();
static const OperationStatus NotStarted;
static const OperationStatus Running;
static const OperationStatus Succeeded;
static const OperationStatus Cancelled;
static const OperationStatus Failed;
OperationStatus(const OperationStatus&) = default;
OperationStatus(OperationStatus&&) = default;
OperationStatus& operator=(const OperationStatus&);
OperationStatus& operator=(OperationStatus&&);
~OperationStatus() = default;
};
} // namespace _internal
enum class HttpStatusCode : int
{
None = 0,
Continue = 100,
SwitchingProtocols = 101,
Processing = 102,
EarlyHints = 103,
Ok = 200,
Created = 201,
Accepted = 202,
NonAuthoritativeInformation = 203,
NoContent = 204,
ResetContent = 205,
PartialContent = 206,
MultiStatus = 207,
AlreadyReported = 208,
IMUsed = 226,
MultipleChoices = 300,
MovedPermanently = 301,
Found = 302,
SeeOther = 303,
NotModified = 304,
UseProxy = 305,
TemporaryRedirect = 307,
PermanentRedirect = 308,
BadRequest = 400,
Unauthorized = 401,
PaymentRequired = 402,
Forbidden = 403,
NotFound = 404,
MethodNotAllowed = 405,
NotAcceptable = 406,
ProxyAuthenticationRequired = 407,
RequestTimeout = 408,
Conflict = 409,
Gone = 410,
LengthRequired = 411,
PreconditionFailed = 412,
PayloadTooLarge = 413,
UriTooLong = 414,
UnsupportedMediaType = 415,
RangeNotSatisfiable = 416,
ExpectationFailed = 417,
MisdirectedRequest = 421,
UnprocessableEntity = 422,
Locked = 423,
FailedDependency = 424,
TooEarly = 425,
UpgradeRequired = 426,
PreconditionRequired = 428,
TooManyRequests = 429,
RequestHeaderFieldsTooLarge = 431,
UnavailableForLegalReasons = 451,
InternalServerError = 500,
NotImplemented = 501,
BadGateway = 502,
ServiceUnavailable = 503,
GatewayTimeout = 504,
HttpVersionNotSupported = 505,
VariantAlsoNegotiates = 506,
InsufficientStorage = 507,
LoopDetected = 508,
NotExtended = 510,
NetworkAuthenticationRequired = 511,
};
class RawResponse {
public:
RawResponse(
int32_t majorVersion,
int32_t minorVersion,
HttpStatusCode statusCode,
const std::string& reasonPhrase);
RawResponse(const RawResponse& response);
RawResponse(RawResponse&& response) = default;
RawResponse& operator=(const RawResponse&);
RawResponse& operator=(RawResponse&&);
~RawResponse() = default;
void SetHeader(const std::string& name, const std::string& value);
void SetBody(std::vector<uint8_t> body);
HttpStatusCode GetStatusCode();
const std::string& GetReasonPhrase();
std::vector<uint8_t>& GetBody();
};
class HttpPolicy {
public:
virtual std::unique_ptr<RawResponse> Send() = 0;
virtual ~HttpPolicy();
virtual std::unique_ptr<HttpPolicy> Clone() = 0;
protected:
explicit HttpPolicy() = default;
explicit HttpPolicy(const HttpPolicy& other) = default;
HttpPolicy& operator=(const HttpPolicy& other);
explicit HttpPolicy(HttpPolicy&& other) = default;
};
namespace _internal {
class TransportPolicy : public HttpPolicy {
public:
TransportPolicy();
virtual std::unique_ptr<HttpPolicy> Clone();
virtual std::unique_ptr<RawResponse> Send();
TransportPolicy& operator=(const TransportPolicy&);
TransportPolicy& operator=(TransportPolicy&&);
virtual ~TransportPolicy() = default;
};
class RetryPolicy : public HttpPolicy, RawResponse {
public:
RetryPolicy();
virtual std::unique_ptr<HttpPolicy> Clone();
virtual std::unique_ptr<RawResponse> Send();
int32_t GetRetryCount();
protected:
virtual bool ShouldRetryOnTransportFailure(
int32_t attempt,
std::chrono::milliseconds& retryAfter,
double jitterFactor);
virtual bool ShouldRetryOnResponse(
int32_t attempt,
std::chrono::milliseconds& retryAfter,
double jitterFactor);
RetryPolicy(const RetryPolicy&) = default;
RetryPolicy(RetryPolicy&&) = default;
RetryPolicy& operator=(const RetryPolicy&);
RetryPolicy& operator=(RetryPolicy&&);
virtual ~RetryPolicy() = default;
};
class RequestIdPolicy : public HttpPolicy, private RawResponse {
public:
RequestIdPolicy();
virtual std::unique_ptr<HttpPolicy> Clone();
virtual std::unique_ptr<RawResponse> Send();
explicit RequestIdPolicy(const RequestIdPolicy&) = default;
explicit RequestIdPolicy(RequestIdPolicy&&) = default;
RequestIdPolicy& operator=(const RequestIdPolicy&);
RequestIdPolicy& operator=(RequestIdPolicy&&);
virtual ~RequestIdPolicy() = default;
};
class RequestActivityPolicy : public HttpPolicy {
public:
RequestActivityPolicy();
virtual std::unique_ptr<HttpPolicy> Clone();
virtual std::unique_ptr<RawResponse> Send();
RequestActivityPolicy(const RequestActivityPolicy&) = default;
RequestActivityPolicy(RequestActivityPolicy&&) = default;
RequestActivityPolicy& operator=(const RequestActivityPolicy&);
RequestActivityPolicy& operator=(RequestActivityPolicy&&);
virtual ~RequestActivityPolicy() = default;
};
class TelemetryPolicy : public HttpPolicy {
public:
TelemetryPolicy(const std::string& componentName, const std::string& componentVersion);
explicit TelemetryPolicy(std::string cn);
explicit TelemetryPolicy(int val = 35);
explicit TelemetryPolicy() = delete;
virtual std::unique_ptr<HttpPolicy> Clone();
virtual std::unique_ptr<RawResponse> Send();
TelemetryPolicy(const TelemetryPolicy&) = default;
TelemetryPolicy(TelemetryPolicy&&) = default;
TelemetryPolicy& operator=(const TelemetryPolicy&);
TelemetryPolicy& operator=(TelemetryPolicy&&);
virtual ~TelemetryPolicy() = default;
};
class MultipleFields {
public:
static bool StaticField;
const bool ConstField;
static const bool StaticConstField;
mutable bool MutableField;
bool Field;
};
struct MultipleFieldsStruct {
static bool StaticField;
const bool ConstField;
static const bool StaticConstField;
bool Field;
};
} // namespace _internal
} // namespace Outer1