void FileStore::open( bool deleteFile ) { if ( m_msgFile ) fclose( m_msgFile ); if ( m_headerFile ) fclose( m_headerFile ); if ( m_seqNumsFile ) fclose( m_seqNumsFile ); if ( m_sessionFile ) fclose( m_sessionFile ); m_msgFile = 0; m_headerFile = 0; m_seqNumsFile = 0; m_sessionFile = 0; if ( deleteFile ) { file_unlink( m_msgFileName.c_str() ); file_unlink( m_headerFileName.c_str() ); file_unlink( m_seqNumsFileName.c_str() ); file_unlink( m_sessionFileName.c_str() ); } populateCache(); m_msgFile = file_fopen( m_msgFileName.c_str(), "r+" ); if ( !m_msgFile ) m_msgFile = file_fopen( m_msgFileName.c_str(), "w+" ); if ( !m_msgFile ) throw ConfigError( "Could not open body file: " + m_msgFileName ); m_headerFile = file_fopen( m_headerFileName.c_str(), "r+" ); if ( !m_headerFile ) m_headerFile = file_fopen( m_headerFileName.c_str(), "w+" ); if ( !m_headerFile ) throw ConfigError( "Could not open header file: " + m_headerFileName ); m_seqNumsFile = file_fopen( m_seqNumsFileName.c_str(), "r+" ); if ( !m_seqNumsFile ) m_seqNumsFile = file_fopen( m_seqNumsFileName.c_str(), "w+" ); if ( !m_seqNumsFile ) throw ConfigError( "Could not open seqnums file: " + m_seqNumsFileName ); bool setCreationTime = false; m_sessionFile = file_fopen( m_sessionFileName.c_str(), "r" ); if ( !m_sessionFile ) setCreationTime = true; else fclose( m_sessionFile ); m_sessionFile = file_fopen( m_sessionFileName.c_str(), "r+" ); if ( !m_sessionFile ) m_sessionFile = file_fopen( m_sessionFileName.c_str(), "w+" ); if ( !m_sessionFile ) throw ConfigError( "Could not open session file" ); if ( setCreationTime ) setSession(); setNextSenderMsgSeqNum( getNextSenderMsgSeqNum() ); setNextTargetMsgSeqNum( getNextTargetMsgSeqNum() ); }
void PostgreSQLStore::incrNextSenderMsgSeqNum() throw ( IOException ) { m_cache.incrNextSenderMsgSeqNum(); setNextSenderMsgSeqNum( m_cache.getNextSenderMsgSeqNum() ); }