Donner SVG main
0.8.0 ยท 64d9612f0.8.0 main
SVG editor and embeddable C⁠+⁠+⁠20 engine.
Loading...
Searching...
No Matches
PackagedResource.h File Reference
#include <cstddef>
#include <cstdint>
#include <functional>
#include <memory>
#include <span>
#include <string>
#include <string_view>
#include <utility>
#include <vector>
#include "donner/base/Utils.h"
Include dependency graph for PackagedResource.h:
This graph shows which files directly or indirectly include this file:

Classes

class  donner::ResourceLease
 An owning immutable view; retaining a view keeps its encoded bytes alive across sessions. More...
struct  donner::PackagedResource
 Authenticated identity of a packaged asset; this type contains no payload bytes. More...
class  donner::PackagedResourceSession
 Owns resource retention for one application lifetime. More...

Namespaces

namespace  donner
 Top-level Donner namespace, which is split into different sub-namespaces such as donner::svg and donner::css.

Typedefs

using donner::ResourceBytes = std::shared_ptr<const std::vector<uint8_t>>
 Immutable encoded resource bytes. An owning lease remains valid across session teardown.
using donner::PackagedResourceProvider = std::function<ResourceBytes(const PackagedResource&)>
 Supplies encoded bytes only. The session independently validates identity and all limits.

Functions

bool donner::SetPackagedResourceSession (std::shared_ptr< PackagedResourceSession > session)
 Set the application session before creating resource consumers; end it after their teardown. A null session restores the default installed-package provider for subsequent applications. Reject replacement after an unowned legacy span was returned; use ResourceLease to permit teardown. On failure the old session remains installed, so an outstanding borrowed view cannot dangle.
std::shared_ptr< PackagedResourceSession > donner::GetPackagedResourceSession ()
std::vector< const PackagedResource * > donner::PackagedResources ()
 Registered compiled identities. Enumeration does not read any payload.
bool donner::PreparePackagedResources (std::string *error)
 Native preflight validates the entire linked set; only essential resources are retained.
std::string donner::ResourceSha256 (std::span< const uint8_t > bytes)
 A portable SHA-256 implementation used to authenticate disk, provider and browser bytes.
PackagedResourceProvider donner::PackagedResourceDirectoryProvider (std::string root)
 File provider rooted in an explicit installation directory; rejects symlinks and traversal.
const char * DonnerPackagedResourceManifest ()
 Compiled identities as JSON, valid after C++ initialization. No payload is included.
void DonnerFailPackagedResource (const char *sha256)
 Install an authenticated known resource. Returns 0 on unknown identity, corruption or budget.
int DonnerInstallPackagedResource (const char *sha256, const uint8_t *bytes, size_t size)