mirror of
https://github.com/aria2/aria2.git
synced 2025-01-01 15:44:55 +00:00
89 lines
2.2 KiB
C++
89 lines
2.2 KiB
C++
#include "common.h"
|
|
|
|
#include <string>
|
|
#include <memory>
|
|
|
|
#include "Cookie.h"
|
|
#include "WrDiskCacheEntry.h"
|
|
#include "GroupId.h"
|
|
|
|
namespace aria2 {
|
|
|
|
class MessageDigest;
|
|
class RequestGroupMan;
|
|
class RequestGroup;
|
|
class Option;
|
|
struct DownloadResult;
|
|
|
|
void createFile(const std::string& filename, size_t length);
|
|
|
|
std::string readFile(const std::string& path);
|
|
|
|
class CookieSorter {
|
|
public:
|
|
bool operator()(const Cookie* lhs, const Cookie* rhs) const
|
|
{
|
|
if(lhs->getDomain() == rhs->getDomain()) {
|
|
return lhs->getName() < rhs->getName();
|
|
} else {
|
|
return lhs->getDomain() < rhs->getDomain();
|
|
}
|
|
}
|
|
};
|
|
|
|
std::unique_ptr<Cookie> createCookie
|
|
(const std::string& name,
|
|
const std::string& value,
|
|
const std::string& domain,
|
|
bool hostOnly,
|
|
const std::string& path,
|
|
bool secure);
|
|
|
|
std::unique_ptr<Cookie> createCookie
|
|
(const std::string& name,
|
|
const std::string& value,
|
|
time_t expiryTime,
|
|
const std::string& domain,
|
|
bool hostOnly,
|
|
const std::string& path,
|
|
bool secure);
|
|
|
|
std::string fromHex(const std::string& s);
|
|
|
|
// Returns hex digest of contents of file denoted by filename.
|
|
std::string fileHexDigest(MessageDigest* ctx, const std::string& filename);
|
|
|
|
WrDiskCacheEntry::DataCell* createDataCell(int64_t goff,
|
|
const char* data,
|
|
size_t offset = 0);
|
|
|
|
std::shared_ptr<RequestGroup> findReservedGroup
|
|
(RequestGroupMan* rgman, a2_gid_t gid);
|
|
|
|
std::shared_ptr<RequestGroup> getReservedGroup
|
|
(RequestGroupMan* rgman, size_t index);
|
|
|
|
std::shared_ptr<RequestGroup> createRequestGroup(int32_t pieceLength,
|
|
int64_t totalLength,
|
|
const std::string& path,
|
|
const std::string& uri,
|
|
const std::shared_ptr<Option>& opt);
|
|
|
|
std::shared_ptr<DownloadResult> createDownloadResult
|
|
(error_code::Value result, const std::string& uri);
|
|
|
|
namespace {
|
|
template<typename V, typename T>
|
|
bool derefFind(const V& v, const T& t)
|
|
{
|
|
for(auto i : v) {
|
|
if(*i == *t) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
} // namespace
|
|
|
|
} // namespace aria2
|