// -----------------------------------------------------------------------------
// 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" ) ) );
    }
Esempio n. 2
0
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 {
Esempio n. 3
0
    }
    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()) {