diff options
Diffstat (limited to 'src/cppc4group.cpp')
| -rw-r--r-- | src/cppc4group.cpp | 50 |
1 files changed, 33 insertions, 17 deletions
diff --git a/src/cppc4group.cpp b/src/cppc4group.cpp index 0619f75..4cc0d08 100644 --- a/src/cppc4group.cpp +++ b/src/cppc4group.cpp @@ -26,6 +26,36 @@ struct CppC4Group::Private { } }; +namespace { + CC4Group_TmpMemoryStrategy convertTmpMemoryStrategy(const CppC4Group::TmpMemoryStrategy strategy) + { + switch(strategy) + { + case CppC4Group::Auto: + return cc4group.TmpMemoryStrategies.Auto; + case CppC4Group::File: + return cc4group.TmpMemoryStrategies.File; + case CppC4Group::Memory: + return cc4group.TmpMemoryStrategies.Memory; + } + return cc4group.TmpMemoryStrategies.Auto; + } + + int convertMemoryManagement(const CppC4Group::MemoryManagement management) + { + switch(management) + { + case CppC4Group::Take: + return cc4group.MemoryManagement.Take; + case CppC4Group::Copy: + return cc4group.MemoryManagement.Copy; + case CppC4Group::Reference: + return cc4group.MemoryManagement.Reference; + } + return cc4group.MemoryManagement.Copy; + } +} + CppC4Group::CppC4Group() : p{new CppC4Group::Private{}} { @@ -97,21 +127,7 @@ std::string CppC4Group::getErrorCauser() void CppC4Group::setTmpMemoryStrategy(const CppC4Group::TmpMemoryStrategy strategy) { - auto ccStrategy = cc4group.TmpMemoryStrategies.Auto; - switch(strategy) - { - case Auto: - ccStrategy = cc4group.TmpMemoryStrategies.Auto; - break; - case File: - ccStrategy = cc4group.TmpMemoryStrategies.File; - break; - case Memory: - ccStrategy = cc4group.TmpMemoryStrategies.Memory; - break; - } - - cc4group.setTmpMemoryStrategy(ccStrategy); + cc4group.setTmpMemoryStrategy(convertTmpMemoryStrategy(strategy)); } bool CppC4Group::setMaker(const std::string& maker, const std::string& path, const bool recursive) @@ -209,7 +225,7 @@ bool CppC4Group::createFile(const std::string& path) return cc4group.createFile(p->g, path.c_str()); } -bool CppC4Group::setEntryData(const std::__cxx11::string& path, const void*const data, const size_t size, const bool freeData) +bool CppC4Group::setEntryData(const std::__cxx11::string& path, const void*const data, const size_t size, const MemoryManagement management) { - return cc4group.setEntryData(p->g, path.c_str(), data, size, freeData); + return cc4group.setEntryData(p->g, path.c_str(), data, size, convertMemoryManagement(management)); } |
