Remove premature global curl cleanup, improve documentation.
This commit is contained in:
parent
a7a861351f
commit
051cf16ceb
|
@ -26,9 +26,6 @@ namespace mastodonpp
|
||||||
|
|
||||||
using std::string;
|
using std::string;
|
||||||
|
|
||||||
//! Internal use only.
|
|
||||||
extern bool curl_initialized;
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief Handles the details of network connections.
|
* @brief Handles the details of network connections.
|
||||||
*
|
*
|
||||||
|
@ -40,10 +37,9 @@ class CURLWrapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/*!
|
/*!
|
||||||
* @brief Constructs a CURLWrapper object.
|
* @brief Initializes curl and sets up connection.
|
||||||
*
|
*
|
||||||
* The first construction of an CurlWrapper object will call
|
* Calls `curl_global_init`, which is not thread-safe. For more information
|
||||||
* `curl_global_init`, which is not thread-safe. For more information
|
|
||||||
* consult [curl_global_init(3)]
|
* consult [curl_global_init(3)]
|
||||||
* (https://curl.haxx.se/libcurl/c/curl_global_init.html).
|
* (https://curl.haxx.se/libcurl/c/curl_global_init.html).
|
||||||
*
|
*
|
||||||
|
@ -57,7 +53,15 @@ public:
|
||||||
//! Move constructor
|
//! Move constructor
|
||||||
CURLWrapper(CURLWrapper &&other) noexcept = default;
|
CURLWrapper(CURLWrapper &&other) noexcept = default;
|
||||||
|
|
||||||
//! Destructor
|
/*!
|
||||||
|
* @brief Cleans up curl and connection.
|
||||||
|
*
|
||||||
|
* Calls `curl_global_cleanup`, which is not thread-safe. For more
|
||||||
|
* information consult [curl_global_cleanup(3)]
|
||||||
|
* (https://curl.haxx.se/libcurl/c/curl_global_cleanup.html).
|
||||||
|
*
|
||||||
|
* @since 0.1.0
|
||||||
|
*/
|
||||||
virtual ~CURLWrapper() noexcept;
|
virtual ~CURLWrapper() noexcept;
|
||||||
|
|
||||||
//! Copy assignment operator
|
//! Copy assignment operator
|
||||||
|
|
|
@ -20,28 +20,17 @@
|
||||||
namespace mastodonpp
|
namespace mastodonpp
|
||||||
{
|
{
|
||||||
|
|
||||||
bool curl_initialized{false};
|
|
||||||
|
|
||||||
CURLWrapper::CURLWrapper()
|
CURLWrapper::CURLWrapper()
|
||||||
: _curl_buffer_error{}
|
: _curl_buffer_error{}
|
||||||
{
|
|
||||||
if (!curl_initialized)
|
|
||||||
{
|
{
|
||||||
curl_global_init(CURL_GLOBAL_ALL); // NOLINT(hicpp-signed-bitwise)
|
curl_global_init(CURL_GLOBAL_ALL); // NOLINT(hicpp-signed-bitwise)
|
||||||
curl_initialized = true;
|
|
||||||
}
|
|
||||||
_connection = curl_easy_init();
|
_connection = curl_easy_init();
|
||||||
setup_curl();
|
setup_curl();
|
||||||
}
|
}
|
||||||
CURLWrapper::~CURLWrapper() noexcept
|
CURLWrapper::~CURLWrapper() noexcept
|
||||||
{
|
{
|
||||||
curl_easy_cleanup(_connection);
|
curl_easy_cleanup(_connection);
|
||||||
|
|
||||||
if (curl_initialized)
|
|
||||||
{
|
|
||||||
curl_global_cleanup();
|
curl_global_cleanup();
|
||||||
curl_initialized = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int CURLWrapper::writer(char *data, size_t size, size_t nmemb, string *writerData)
|
int CURLWrapper::writer(char *data, size_t size, size_t nmemb, string *writerData)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user