mirror-chatterino2/src/common/NetworkCommon.hpp

38 lines
1 KiB
C++
Raw Normal View History

#pragma once
#include <functional>
#include <vector>
#include <QString>
class QNetworkReply;
namespace chatterino {
class Outcome;
class NetworkResult;
2018-08-02 14:23:27 +02:00
using NetworkSuccessCallback = std::function<Outcome(NetworkResult)>;
using NetworkErrorCallback = std::function<void(NetworkResult)>;
using NetworkReplyCreatedCallback = std::function<void(QNetworkReply *)>;
using NetworkFinallyCallback = std::function<void()>;
enum class NetworkRequestType {
Get,
Post,
Put,
Delete,
Patch,
};
// parseHeaderList takes a list of headers in string form,
// where each header pair is separated by semicolons (;) and the header name and value is divided by a colon (:)
//
// We return a vector of pairs, where the first value is the header name and the second value is the header value
//
// e.g. "Authorization:secretkey;NextHeader:boo" will return [{"Authorization", "secretkey"}, {"NextHeader", "boo"}]
std::vector<std::pair<QByteArray, QByteArray>> parseHeaderList(
const QString &headerListString);
} // namespace chatterino