Haio 0.2.X
Homebrew Asset IO/CDN
Loading...
Searching...
No Matches
bucket.hpp File Reference
#include <haio_cdn.hpp>
#include <boost/asio/awaitable.hpp>
#include <list>
#include <map>
#include <memory>
#include <optional>
#include <stdexcept>
#include <string>
#include <vector>
Include dependency graph for bucket.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Haio::Cdn::Bucket::Failure
struct  Haio::Cdn::Bucket::ZipEntry
struct  Haio::Cdn::Bucket::ZipIndex
struct  Haio::Cdn::Bucket::ZipPath
class  Haio::Cdn::Bucket::ZipArchives
struct  Haio::Cdn::Bucket::ZipArchives::Archive

Namespaces

namespace  Haio
namespace  Haio::Cdn
namespace  Haio::Cdn::Bucket

Typedefs

using Haio::Cdn::Bucket::Headers = std::map<std::string, std::string>

Functions

Blob Haio::Cdn::Bucket::fetchFile (const BucketConfig &bucket, std::string path)
boost::asio::awaitable< Blob > Haio::Cdn::Bucket::fetchHttp (const BucketConfig &bucket, std::string path)
boost::asio::awaitable< Blob > Haio::Cdn::Bucket::fetchUrlWith (std::string url, std::string pathForFormat, Headers headers)
boost::asio::awaitable< Blob > Haio::Cdn::Bucket::fetchS3 (const BucketConfig &bucket, std::string path)
std::string Haio::Cdn::Bucket::awsSignatureV4 (std::string_view secret, std::string_view date, std::string_view region, std::string_view service, std::string_view stringToSign)
Result< ZipIndex > Haio::Cdn::Bucket::readZipIndex (Bytes data)
Result< std::vector< uint8_t > > Haio::Cdn::Bucket::readZipEntry (Bytes data, const ZipEntry &entry, size_t maxSize)
std::optional< ZipPath > Haio::Cdn::Bucket::splitZipPath (std::string_view path)
boost::asio::awaitable< Blob > Haio::Cdn::Bucket::fetchInsideZip (const BucketConfig &bucket, const ZipPath &path, const SecurityConfig &security, ZipArchives &archives)

Class Documentation

◆ Haio::Cdn::Bucket::ZipEntry

struct Haio::Cdn::Bucket::ZipEntry

where one file sits inside an archive, as the zip's own directory records it

Definition at line 63 of file bucket.hpp.

Class Members
uint32_t at = 0
uint32_t compressed = 0
uint16_t method = 0
uint32_t uncompressed = 0

◆ Haio::Cdn::Bucket::ZipIndex

struct Haio::Cdn::Bucket::ZipIndex

Definition at line 70 of file bucket.hpp.

Class Members
map< string, ZipEntry > entries

◆ Haio::Cdn::Bucket::ZipPath

struct Haio::Cdn::Bucket::ZipPath

"pack.zip/logo.png" split into the archive and the name inside it, or nothing when the path names no archive. the split is on the first ".zip/", so an archive inside an archive is read as a file inside the outer one rather than opened again.

Definition at line 82 of file bucket.hpp.

Class Members
string archive
string inside

◆ Haio::Cdn::Bucket::ZipArchives::Archive

struct Haio::Cdn::Bucket::ZipArchives::Archive

Definition at line 102 of file bucket.hpp.

Collaboration diagram for Haio::Cdn::Bucket::ZipArchives::Archive:
Class Members
vector< uint8_t > data
ZipIndex index