#include "./optiondata.h" #include "./permissionstatus.h" #include namespace Network { /*! * \class OptionData * \brief The OptionData class wraps download option specific information. */ /*! * \brief Constructs a new option data object. */ OptionData::OptionData(const QString &name, const QUrl &url, size_t redirectsTo, size_t redirectionOf) : m_name(name), m_url(url), m_redirectsTo(redirectsTo), m_redirectionOf(redirectionOf), m_requestingNewOutputDevice(false), m_outputDevice(nullptr), m_outputDeviceReady(false), m_bytesWritten(0), m_stillWriting(false), m_downloadComplete(false), m_downloadAbortedInternally(false), m_hasOutputDeviceOwnership(false), m_overwritePermission(PermissionStatus::Unknown), m_appendPermission(PermissionStatus::Unknown), m_redirectPermission(PermissionStatus::Unknown), m_ignoreSslErrorsPermission(PermissionStatus::Unknown) {} /*! * \brief Destroys the assigned output device if ownership has been given, detaches the assigned * output device if ownership has not been given. */ void OptionData::chuckOutputDevice() { if(m_outputDevice && m_hasOutputDeviceOwnership) { delete m_outputDevice; } m_outputDevice = nullptr; m_hasOutputDeviceOwnership = false; } /*! * \brief Destroys the option data object. Also calls destroyDevice(). */ OptionData::~OptionData() { chuckOutputDevice(); } } // namespace Network