1#ifndef ZYPP_NG_MEDIA_CURL_CURL_H_INCLUDED
2#define ZYPP_NG_MEDIA_CURL_CURL_H_INCLUDED
5#include <zypp-core/ng/base/Base>
7#include <zypp-core/ng/core/Url>
9#include <unordered_map>
12#include <zypp-curl/ng/network/HttpHeader>
78 class NetworkRequestDispatcher :
public Base
83 using Ptr = std::shared_ptr<NetworkRequestDispatcher>;
84 using WeakPtr = std::weak_ptr<NetworkRequestDispatcher>;
86 NetworkRequestDispatcher ( );
92 static bool supportsProtocol (
const Url &url );
98 void setMaximumConcurrentConnections (
const int maxConn );
103 int maximumConcurrentConnections ()
const;
109 void enqueue (
const std::shared_ptr<NetworkRequest> &req );
114 void setAgentString (
const std::string &agent );
119 const std::string &agentString ()
const;
128 void setHostSpecificHeader (
const std::string &host,
const std::string &headerName,
const std::string &value );
129 void setHostSpecificHeader (
const std::string &host_r,
const HttpHeader & header_r )
130 { setHostSpecificHeader( host_r, header_r.key(), header_r.value() ); }
133 void unsetHostSpecificHeader(
const std::string &host,
const std::string &headerName );
135 using SpecificHeaderMap = std::unordered_map< std::string, std::unordered_map<std::string, std::string >>;
140 const SpecificHeaderMap &hostSpecificHeaders()
const;
146 void cancel ( NetworkRequest &req , std::string reason = std::string() );
151 void cancel ( NetworkRequest &req ,
const NetworkRequestError &err );
156 void cancelAll ( std::string reason = std::string() );
161 void cancelAll (
const NetworkRequestError &err );
182 const NetworkRequestError &lastError()
const;
187 SignalProxy<void ( NetworkRequestDispatcher &, NetworkRequest & )> sigDownloadStarted();
192 SignalProxy<void ( NetworkRequestDispatcher &, NetworkRequest & )> sigDownloadFinished();
197 SignalProxy<void ( NetworkRequestDispatcher & )> sigQueueFinished ();
203 SignalProxy<void ( NetworkRequestDispatcher & )> sigError ();
#define ZYPP_DECLARE_PRIVATE(Class)