Audacity 3.2.0
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
audacity::network_manager::HeadersList Class Referencefinal

#include <HeadersList.h>

Collaboration diagram for audacity::network_manager::HeadersList:
[legend]

Public Types

using HeadersIterator = HeadersStorageType::iterator
 
using HeadersConstIterator = HeadersStorageType::const_iterator
 

Public Member Functions

void setHeader (const Header &header)
 
void setHeader (const std::string &headerName, std::string headerValue)
 
void addHeader (Header header)
 
void addHeader (std::string headerName, std::string headerValue)
 
bool hasHeader (const std::string &headerName) const noexcept
 
std::string getHeaderValue (const std::string &headerName) const
 
const HeadergetHeader (size_t idx) const noexcept
 
const HeadergetHeader (const std::string &name) const noexcept
 
size_t getHeadersCount () const noexcept
 
HeadersIterator begin () noexcept
 
HeadersIterator end () noexcept
 
HeadersConstIterator begin () const noexcept
 
HeadersConstIterator end () const noexcept
 

Private Types

using HeadersStorageType = std::vector< Header >
 

Private Member Functions

HeadergetHeader (size_t idx) noexcept
 
HeadergetHeader (const std::string &headerName) noexcept
 

Private Attributes

HeadersStorageType mHeaders
 

Detailed Description

Definition at line 62 of file HeadersList.h.

Member Typedef Documentation

◆ HeadersConstIterator

using audacity::network_manager::HeadersList::HeadersConstIterator = HeadersStorageType::const_iterator

Definition at line 67 of file HeadersList.h.

◆ HeadersIterator

using audacity::network_manager::HeadersList::HeadersIterator = HeadersStorageType::iterator

Definition at line 66 of file HeadersList.h.

◆ HeadersStorageType

Definition at line 64 of file HeadersList.h.

Member Function Documentation

◆ addHeader() [1/2]

void HeadersList::addHeader ( Header  header)

Definition at line 107 of file HeadersList.cpp.

108{
109 addHeader (std::move (header.Name), std::move (header.Value));
110}

References addHeader(), audacity::network_manager::Header::Name, and audacity::network_manager::Header::Value.

Referenced by addHeader().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addHeader() [2/2]

void HeadersList::addHeader ( std::string  headerName,
std::string  headerValue 
)

Definition at line 112 of file HeadersList.cpp.

113{
114 mHeaders.push_back ({ std::move (headerName), std::move (headerValue) });
115}

References mHeaders.

◆ begin() [1/2]

HeadersList::HeadersConstIterator HeadersList::begin ( ) const
noexcept

Definition at line 157 of file HeadersList.cpp.

158{
159 return mHeaders.begin ();
160}

References mHeaders.

◆ begin() [2/2]

HeadersList::HeadersIterator HeadersList::begin ( )
noexcept

Definition at line 147 of file HeadersList.cpp.

148{
149 return mHeaders.begin ();
150}

References mHeaders.

◆ end() [1/2]

HeadersList::HeadersConstIterator HeadersList::end ( ) const
noexcept

Definition at line 162 of file HeadersList.cpp.

163{
164 return mHeaders.end ();
165}

References mHeaders.

◆ end() [2/2]

HeadersList::HeadersIterator HeadersList::end ( )
noexcept

Definition at line 152 of file HeadersList.cpp.

153{
154 return mHeaders.end ();
155}

References mHeaders.

◆ getHeader() [1/4]

Header * HeadersList::getHeader ( const std::string &  headerName)
privatenoexcept

Definition at line 175 of file HeadersList.cpp.

176{
177 for (Header& header : mHeaders)
178 {
179 if (header.hasSameName (headerName))
180 return &header;
181 }
182
183 return nullptr;
184}
A string pair, representing HTTP header.

◆ getHeader() [2/4]

const Header * HeadersList::getHeader ( const std::string &  name) const
noexcept

Definition at line 137 of file HeadersList.cpp.

138{
139 return const_cast<HeadersList*>(this)->getHeader (name);
140}
const TranslatableString name
Definition: Distortion.cpp:76
A class, representing a list of HTTP headers.
const Header * getHeader(size_t idx) const noexcept

References name.

◆ getHeader() [3/4]

const Header * HeadersList::getHeader ( size_t  idx) const
noexcept

Definition at line 132 of file HeadersList.cpp.

133{
134 return const_cast<HeadersList*>(this)->getHeader (idx);
135}

Referenced by getHeaderValue(), and setHeader().

Here is the caller graph for this function:

◆ getHeader() [4/4]

Header * HeadersList::getHeader ( size_t  idx)
privatenoexcept

Definition at line 167 of file HeadersList.cpp.

168{
169 if (idx < mHeaders.size ())
170 return &mHeaders[idx];
171
172 return nullptr;
173}

◆ getHeadersCount()

size_t HeadersList::getHeadersCount ( ) const
noexcept

Definition at line 142 of file HeadersList.cpp.

143{
144 return mHeaders.size ();
145}

References mHeaders.

◆ getHeaderValue()

std::string HeadersList::getHeaderValue ( const std::string &  headerName) const

Definition at line 122 of file HeadersList.cpp.

123{
124 const Header* header = getHeader (headerName);
125
126 if (header != nullptr)
127 return header->Value;
128
129 return {};
130}

References getHeader(), and audacity::network_manager::Header::Value.

Referenced by audacity::network_manager::CurlResponse::getHeader(), and audacity::network_manager::Request::getHeader().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hasHeader()

bool HeadersList::hasHeader ( const std::string &  headerName) const
noexcept

Definition at line 117 of file HeadersList.cpp.

118{
119 return getHeader (headerName) != nullptr;
120}

◆ setHeader() [1/2]

void HeadersList::setHeader ( const Header header)

Definition at line 92 of file HeadersList.cpp.

93{
94 setHeader (header.Name, header.Value);
95}
void setHeader(const Header &header)
Definition: HeadersList.cpp:92

References audacity::network_manager::Header::Name, setHeader(), and audacity::network_manager::Header::Value.

Referenced by setHeader(), audacity::network_manager::MultipartData::Part::SetHeader(), and audacity::network_manager::Request::setHeader().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setHeader() [2/2]

void HeadersList::setHeader ( const std::string &  headerName,
std::string  headerValue 
)

Definition at line 97 of file HeadersList.cpp.

98{
99 Header* item = getHeader (headerName);
100
101 if (item != nullptr)
102 item->Value = std::move (headerValue);
103 else
104 mHeaders.push_back ({ headerName, std::move (headerValue) });
105}

References getHeader(), mHeaders, and audacity::network_manager::Header::Value.

Here is the call graph for this function:

Member Data Documentation

◆ mHeaders

HeadersStorageType audacity::network_manager::HeadersList::mHeaders
private

Definition at line 93 of file HeadersList.h.

Referenced by addHeader(), begin(), end(), getHeadersCount(), and setHeader().


The documentation for this class was generated from the following files: