1 /*!********************************************************************
2 
3  Audacity: A Digital Audio Editor
4 
5  @file CurlStringList.cpp
6  @brief Define a RAII wrapper for the curl_slist.
7 
8  Dmitry Vedenko
9  **********************************************************************/
10 
11 #include "CurlStringList.h"
12 
13 #include <curl/curl.h>
14 
15 
16 namespace audacity
17 {
18 namespace network_manager
19 {
20 
CurlStringList(CurlStringList && rhs)21 CurlStringList::CurlStringList (CurlStringList&& rhs) noexcept
22     : mList (rhs.mList)
23 {
24     rhs.mList = nullptr;
25 }
26 
~CurlStringList()27 CurlStringList::~CurlStringList () noexcept
28 {
29     curl_slist_free_all (mList);
30 }
31 
operator =(CurlStringList && rhs)32 CurlStringList& CurlStringList::operator= (CurlStringList&& rhs) noexcept
33 {
34     std::swap (mList, rhs.mList);
35     return *this;
36 }
37 
append(const std::string & string)38 void CurlStringList::append (const std::string& string) noexcept
39 {
40     mList = curl_slist_append (mList, string.c_str ());
41 }
42 
append(const char * string)43 void CurlStringList::append (const char* string) noexcept
44 {
45     mList = curl_slist_append (mList, string);
46 }
47 
getCurlList() const48 curl_slist* CurlStringList::getCurlList () const noexcept
49 {
50     return mList;
51 }
52 
53 }
54 }
55