diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2019-03-20 17:47:51 +0100 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2019-03-20 17:47:51 +0100 |
| commit | afaebd0407af3f88dfa9c46b74754a1d96f92ab5 (patch) | |
| tree | b67d7985362711f1c73e48f4551b5ccb7c0730f3 /src/cppc4group.cpp | |
| parent | bca1c49cf8aad47f5c1ecc2ba4f92f51115d7329 (diff) | |
| download | cc4group-afaebd0407af3f88dfa9c46b74754a1d96f92ab5.tar.gz cc4group-afaebd0407af3f88dfa9c46b74754a1d96f92ab5.zip | |
Add openAsChild, currently without writing support
Diffstat (limited to 'src/cppc4group.cpp')
| -rw-r--r-- | src/cppc4group.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/cppc4group.cpp b/src/cppc4group.cpp index 1b4022e..950a714 100644 --- a/src/cppc4group.cpp +++ b/src/cppc4group.cpp @@ -25,6 +25,11 @@ struct CppC4Group::Private { } + Private(CC4Group* g) : g{g} + { + + } + ~Private() { cc4group.delete_(g); @@ -66,6 +71,17 @@ CppC4Group::CppC4Group() : p{new CppC4Group::Private{}} } +CppC4Group::CppC4Group(CppC4Group&& other) : p{std::move(other.p)} +{ + +} + +CppC4Group::CppC4Group(std::unique_ptr<Private>&& p) : p{std::move(p)} +{ + +} + + CppC4Group::~CppC4Group() { @@ -281,3 +297,16 @@ bool CppC4Group::setEntryData(const std::string& path, const void*const data, co { return cc4group.setEntryData(p->g, path.c_str(), data, size, convertMemoryManagement(management)); } + +std::optional<CppC4Group> CppC4Group::openAsChild(const std::string& path) +{ + auto g = cc4group.openAsChild(p->g, path.c_str()); + if(g == nullptr) + { + return {}; + } + else + { + return {{std::make_unique<Private>(g)}}; + } +}
\ No newline at end of file |
