载入中...
搜索中...
未找到
AssetPackageStore.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
10#include "asset/EvaArchive.h"
11#include "asset/Evpack.h"
12
13#include <atomic>
14#include <filesystem>
15#include <functional>
16#include <optional>
17
18namespace eve::asset {
19
21enum class PackagePublishGateDecision : std::uint8_t {
22 Proceed,
23 Reject,
24};
25
28 std::filesystem::path destination;
30 std::optional<PersistentId> buildId;
31 std::uint64_t byteSize = 0;
32};
33
40public:
42 const std::filesystem::path& temporary, const std::filesystem::path& destination)>;
43
45 explicit AtomicAssetPackageStore(BeforeReplace beforeReplace = {});
46
53 [[nodiscard]] Result<PackagePublishReceipt> publishEva(
54 const std::filesystem::path& destination, const EvaManifest& manifest,
55 std::vector<EvaArchiveEntry> entries, const EvaArchiveLimits& limits = {});
56
63 [[nodiscard]] Result<PackagePublishReceipt> publishEvpack(
64 const std::filesystem::path& destination, std::span<const std::uint8_t> bytes,
65 const EvpackLimits& limits = {}, const EvpackTrust& trust = {});
66
67private:
68 BeforeReplace beforeReplace_;
69 std::atomic<std::uint64_t> sequence_{0};
70};
71
72} // namespace eve::asset
std::unordered_map< std::string, QuestRuntime > entries
Deterministic and bounded ZIP64 container for EVEngine source assets.
Versioned random-access runtime package produced by the asset cooker.
#define EVENGINE_API_FOUNDATION
每个链接组(link group)各自的导出宏。
Definition Export.h:106
std::uint64_t bytes
const AssetImportLimits & limits
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Filesystem publisher whose failed prepare/verify leaves the destination unchanged.
std::function< PackagePublishGateDecision(const std::filesystem::path &temporary, const std::filesystem::path &destination)> BeforeReplace
Id128 public API.
Definition Identity.h:112
PackagePublishGateDecision
Explicit test/tool gate result immediately before atomic replacement.
Admission budgets applied before allocating decoded archive entries.
Definition EvaArchive.h:21
Validated, owning .eva manifest.
Definition EvaManifest.h:62
Durable information returned only after atomic replacement succeeds.
std::optional< PersistentId > buildId