4#ifndef _Stroika_Foundation_IO_Network_HTTP_Cookie_h_
5#define _Stroika_Foundation_IO_Network_HTTP_Cookie_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
11#include "Stroika/Foundation/Common/KeyValuePair.h"
12#include "Stroika/Foundation/Common/Property.h"
13#include "Stroika/Foundation/Containers/Collection.h"
14#include "Stroika/Foundation/Containers/Mapping.h"
23 using Characters::Character;
24 using Characters::String;
25 using Common::KeyValuePair;
26 using Containers::Collection;
27 using Containers::Mapping;
42 static constexpr string_view kExpiresAttributeLabel =
"Expires"sv;
43 optional<Time::DateTime> fExpires;
48 static constexpr string_view kMaxAgeAttributeLabel =
"Max-Age"sv;
49 optional<int> fMaxAge;
54 static constexpr string_view kDomainAttributeLabel =
"Domain"sv;
55 optional<String> fDomain;
60 static constexpr string_view kPathAttributeLabel =
"Path"sv;
61 optional<String> fPath;
68 static constexpr string_view kSecureAttributeLabel =
"Secure"sv;
76 static constexpr string_view kHttpOnlyAttributeLabel =
"HttpOnly"sv;
77 bool fHttpOnly{
false};
82 optional<Mapping<String, String>> fOtherAttributes;
91 nonvirtual
void AddAttribute (
const String& aEqualsBAttributePair);
92 nonvirtual
void AddAttribute (
const String& key,
const String& value);
98 template <
typename T = String>
118 nonvirtual
bool operator== (
const Cookie& rhs)
const =
default;
121 String Cookie::As<String> ()
const;
181 nonvirtual
bool operator== (
const CookieList& rhs)
const;
String is like std::u32string, except it is much easier to use, often much more space efficient,...
A Collection<T> is a container to manage an un-ordered collection of items, without equality defined ...
nonvirtual Characters::String ToString() const
nonvirtual String EncodeForCookieHeader() const
render as a string suitable for a cookie header
static CookieList Parse(const String &cookieValueArg)
nonvirtual CookieList & operator=(CookieList &&rhs)
Common::Property< Collection< Cookie > > cookieDetails
Common::Property< Mapping< String, String > > cookies
object representing an HTTP cookie - from https://tools.ietf.org/html/rfc6265
nonvirtual Characters::String ToString() const
static Cookie Parse(Streams::InputStream::Ptr< Character > src)
nonvirtual String As() const
render as a string suitable for a cookie header
nonvirtual Mapping< String, String > GetAttributes() const