로딩중...
검색중...
일치하는것 없음
packLoader.hpp
이 파일의 문서화 페이지로 가기
1
2#pragma once
3
4#include "core/ast/pack.hpp"
5
6namespace by {
7
8 class errReport;
9 class packLoading;
10 typedef std::vector<packLoading*> packLoadings;
11
17 class _nout packLoader: public typeProvidable, public clonable {
18 BY(CLASS(packLoader))
19
20 public:
21 packLoader();
22
23 public:
24 me& addPath(const std::string& filePath);
25 me& addPath(const std::vector<std::string> paths);
26 me& addPath(std::initializer_list<const nchar*> paths);
27 me& addRelativePath(const std::string& path);
34 me& setBasePacks(nmap* it) BY_SIDE_FUNC(it, setBasePacks(*it), *this);
35
41 void load();
42
43 private:
44 void _makePacks(nmap& tray);
45 void _addNewPack(nmap& tray, manifest& mani, const std::string& dirPath);
46
47 void _logPack(const pack& pak) const;
48
49 manifest _interpManifest(const std::string& dir, const std::string& manPath) const;
50
51 packLoading* _makeLoading(const std::string& name) const;
52 const packLoadings& _getLoadings() const;
53
54 private:
55 tstr<nmap> _packs;
56 std::vector<std::string> _paths;
57 static constexpr nchar DELIMITER = '/';
58 };
59} // namespace by
Interface for objects that can be cloned
Definition clonable.hpp:13
Pack
Definition pack.hpp:21
Pack loading and management system
Definition packLoader.hpp:17
void load()
Initiates the pack loading process.
me & setBasePacks(nmap &s)
Sets the map where loaded packs will be stored.
Base class for pack loading strategies
Definition packLoading.hpp:20
Interface for objects that can provide their type information
Definition typeProvidable.hpp:13
#define BY_SIDE_FUNC(...)
Side function macros for safe pointer operations
Definition sideFunc.hpp:24
Pack manifest information
Definition manifest.hpp:32
Rich logging support with polymorphic type conversion
Definition richLog.hpp:34