203 static constexpr auto eDecoded = StringPCTEncodedFlag::eDecoded;
204 static constexpr auto ePCTEncoded = StringPCTEncodedFlag::ePCTEncoded;
227 nonvirtual
Host& operator= (
const Host&) =
default;
228 nonvirtual
Host& operator= (
Host&&)
noexcept =
default;
237 static Host Parse (
const String& rawURLHostnameText);
243 nonvirtual
Host Normalize ()
const;
251 nonvirtual optional<String> AsRegisteredName ()
const;
259 nonvirtual optional<InternetAddress> AsInternetAddress ()
const;
279 template <
typename RESULT_TYPE = String>
280 nonvirtual RESULT_TYPE
As (optional<StringPCTEncodedFlag> pctEncode = {})
const
281 requires (same_as<RESULT_TYPE, String> or same_as<RESULT_TYPE, string>);
286 nonvirtual strong_ordering operator<=> (
const Host& rhs)
const;
291 nonvirtual
bool operator== (
const Host& rhs)
const;
294 static strong_ordering TWC_ (
const Host& lhs,
const Host& rhs);
301 nonvirtual
String ToString ()
const;
304 [[deprecated (
"Since Stroika v3.0d5 - use As<String>(StringPCTEncodedFlag::eDecoded)")]]
String AsDecoded ()
const
306 return As<String> (StringPCTEncodedFlag::eDecoded);
308 template <
typename RESULT_TYPE = String>
309 [[deprecated (
"Since Stroika v3.0d5 - use As<String>(StringPCTEncodedFlag::ePCTEncoded)")]] RESULT_TYPE AsEncoded ()
const
311 return As<RESULT_TYPE> (StringPCTEncodedFlag::ePCTEncoded);
316 static pair<optional<String>, optional<InternetAddress>> ParseRaw_ (
const String& raw);
319 static String EncodeAsRawURL_ (
const String& registeredName);
320 static String EncodeAsRawURL_ (
const InternetAddress& ipAddr);
323 String fEncodedName_;
324 optional<String> fRegisteredName_;
325 optional<InternetAddress> fInternetAddress_;
346 static constexpr auto eDecoded = StringPCTEncodedFlag::eDecoded;
347 static constexpr auto ePCTEncoded = StringPCTEncodedFlag::ePCTEncoded;
390 template <
typename RESULT_TYPE = String>
391 nonvirtual RESULT_TYPE
As (optional<StringPCTEncodedFlag> pctEncoded = {})
const
392 requires (same_as<RESULT_TYPE, String> or same_as<RESULT_TYPE, string>);
397 nonvirtual strong_ordering operator<=> (
const UserInfo& rhs)
const;
402 nonvirtual
bool operator== (
const UserInfo& rhs)
const;
412 nonvirtual
String ToString ()
const;
415 [[deprecated (
"Since Stroika v3.0d5 - use As<String>(StringPCTEncodedFlag::eDecoded)")]]
String AsDecoded ()
const
417 return As<String> (StringPCTEncodedFlag::eDecoded);
419 template <
typename RESULT_TYPE = String>
420 [[deprecated (
"Since Stroika v3.0d5 - use As<String>(StringPCTEncodedFlag::ePCTEncoded)")]] RESULT_TYPE AsEncoded ()
const
422 return As<RESULT_TYPE> (StringPCTEncodedFlag::ePCTEncoded);
427 static String ParseRaw_ (
const String& raw);
430 static String EncodeAsRawURL_ (
const String& decodedName);
433 String fEncodedUserInfo_;
452 static constexpr auto eDecoded = StringPCTEncodedFlag::eDecoded;
453 static constexpr auto ePCTEncoded = StringPCTEncodedFlag::ePCTEncoded;
461 Authority (
const optional<Host>& h = nullopt,
const optional<PortType>& port = nullopt,
const optional<UserInfo>& userInfo = nullopt);
479 static optional<Authority> Parse (
const String& rawURLAuthorityText);
495 template <
typename T>
496 nonvirtual T
As (optional<StringPCTEncodedFlag> pctEncode = {})
const;
504 nonvirtual optional<Host> GetHost ()
const;
509 nonvirtual
void SetHost (
const optional<Host>& host);
514 nonvirtual optional<PortType> GetPort ()
const;
519 nonvirtual
void SetPort (
const optional<PortType>& port);
530 nonvirtual optional<UserInfo> GetUserInfo ()
const;
536 nonvirtual
void SetUserInfo (
const optional<UserInfo>& userInfo);
541 nonvirtual strong_ordering operator<=> (
const Authority& rhs)
const;
546 nonvirtual
bool operator== (
const Authority& rhs)
const;
556 nonvirtual
String ToString ()
const;
559 optional<Host> fHost_;
560 optional<PortType> fPort_;
561 optional<UserInfo> fUserInfo_;