//Apr_XML.cpp
#include "Apr_xml.h"
Apr_xml::Apr_xml( const char * fileName ): fName( fileName ){
/* apr initial */
apr_initialize();
/*create memory pool */
apr_pool_create( &mp, NULL );
std::cout<<"Create process APR initial success."<<std::endl;
}
Apr_xml::Apr_xml(){
}
apr_pool_t* Apr_xml::getMp(){
return mp;
}
apr_status_t Apr_xml::statusWriteFile( const char *fName, apr_pool_t *mp ){
std::cout<<"Set path name "<< fName<<std::endl;
/* lock file */
if( ( rv = apr_file_open( &fp, fName, APR_WRITE, APR_OS_DEFAULT, mp ) ) != APR_SUCCESS ) {
return rv;
}
if( ( rv = apr_file_lock( fp, APR_FLOCK_EXCLUSIVE | APR_FLOCK_NONBLOCK ) ) != APR_SUCCESS ){
std::cout<<"Write-lock failed"<<std::endl;
apr_file_close( fp );
return rv;
}
return rv;
}
/*get path file name */
const char* Apr_xml::getFileName(){
return fName;
}
/* for unlock file */
const char* Apr_xml::unlockFile(){
apr_file_unlock( fp );
std::cout<<"Unlock file success"<<std::endl;
return "Unlock";
}
apr_status_t Apr_xml::statusReadFile( const char *fName, apr_pool_t *mp ){
if( ( rv = apr_file_open( &fp, fName, APR_READ, APR_OS_DEFAULT,mp )) != APR_SUCCESS ){
std::cout<<"Cannot open file "<<std::endl;
return rv;
}
if( ( rv = apr_file_lock( fp, APR_FLOCK_SHARED | APR_FLOCK_NONBLOCK ) ) != APR_SUCCESS ){
std::cout<<"Read-lock failed"<<std::endl;
apr_file_close( fp );
return rv;
}
return rv;
}
Apr_xml::~Apr_xml()
{
apr_pool_destroy( mp );
apr_terminate();
std::cout<<"Terminate memory pool "<<std::endl;
}