// ----------------------------------------------------------------------------- // CPsmConfigStorage::InitConfigL // ----------------------------------------------------------------------------- // void CPsmConfigStorage::InitStorageL( const TUint32 aStorageUid ) { COMPONENT_TRACE( ( _L( "PSM Server - CPsmConfigStorage::InitStorageL()" ) ) ); iStorageUid = aStorageUid; // Create storage file parser iDOMImpl.OpenL( ); User::LeaveIfError( iStorageParser.Open( iDOMImpl ) ); // Generate file folder+name+extension TBuf<KPsmMaxPathLength> privatePath( KNullDesC ); iFileSession.PrivatePath( privatePath ); TBuf<KPsmMaxPathLength> storageFile( KNullDesC ); storageFile.Append( KPsmPrivateDrive ); storageFile.Append( privatePath ); storageFile.AppendNumUC( iStorageUid, EHex ); storageFile.Append( KPsmStorageExtension ); // Initialize PSM config file. Leave if config file is not found TRAPD( parseErr, iStorageFile = iStorageParser.ParseFileL( iFileSession, storageFile ) ); COMPONENT_TRACE( ( _L( "PSM Server - CPsmConfigStorage::InitStorageL() - Parse file started: %i" ), parseErr ) ); User::LeaveIfError( parseErr ); // Initialize root elements InitRootElementsL(); COMPONENT_TRACE( ( _L( "PSM Server - CPsmConfigStorage::InitStorageL() - return" ) ) ); }
bool Sankaku::Context::load() { #ifdef SHOW_CONTEXTIO printf("[DD]: loading context [%s]\n", storageFile().c_str()); #endif std::ifstream file(storageFile()); if (file.is_open()) { const size_t magicNumber = 12 * 256 + 34; uint32_t magic; file.read(static_cast<char *>(static_cast<void *>(&magic)), 4); if (!file.good()) { return false; } if (magic != magicNumber) { return false; } std::unordered_set<std::string> tmp; if (!loadStringSet(tmp, file)) { return false; } m_allowedExtensions = std::move(tmp); if (!loadStringSet(tmp, file)) { return false; } m_savedPosts = std::move(tmp); if (!loadStringSet(tmp, file)) { return false; } m_tagBlacklist = std::move(tmp); std::string tgt; if (!loadString(tgt, file)) { return false; } m_targetDir = std::move(tgt); Tags tag; file >> tag; if (!file.good()) { return false; } m_tags = std::move(tag); } else {
} m_tagBlacklist = std::move(tmp); std::string tgt; if (!loadString(tgt, file)) { return false; } m_targetDir = std::move(tgt); Tags tag; file >> tag; if (!file.good()) { return false; } m_tags = std::move(tag); } else { printf("[WW]: failed to open context storage [%s]\n", storageFile().c_str()); return false; } return true; } bool Sankaku::Context::save() { #ifdef SHOW_CONTEXTIO printf("[DD]: saving context [%s]\n", storageFile().c_str()); #endif std::ofstream file(storageFile()); if (file.is_open()) { const size_t magicNumber = 12 * 256 + 34; uint32_t magic = magicNumber; file.write(static_cast<char *>(static_cast<void *>(&magic)), 4); if (!file.good()) {