| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | #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
 |