diff options
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 |
