main/ucb/source/ucp/webdav/SerfSession.cxx
// -------------------------------------------------------------------
// UNLOCK called from external (DAVResourceAccess)
// -------------------------------------------------------------------
UNLOCK called from external (DAVResourceAccess)
UNLOCK called from external ( DAVResourceAccess )
void SerfSession::UNLOCK( const ::rtl::OUString & inPath,
                          const DAVRequestEnvironment & rEnv )
    throw ( DAVException )
{
    osl::Guard< osl::Mutex > theGuard( m_aMutex );
    rtl::OUString aUri( composeCurrentUri( inPath ) );
    SerfLock * pLock = m_aSerfLockStore.findByUri( aUri );
    if ( !pLock )
    {
        throw DAVException( DAVException::DAV_NOT_LOCKED );
    }
    Init( rEnv );
    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
    apr_status_t status = APR_SUCCESS;
    ucb::Lock inLock = pLock->getLock();
    m_aSerfLockStore.removeLock(pLock);
    delete pLock;
    aReqProc->processUnlock( inPath, inLock, status);
    HandleError( aReqProc );
}
void SerfSession :: UNLOCK ( const :: rtl :: OUString & inPath , const DAVRequestEnvironment & rEnv ) throw ( DAVException ) { osl :: Guard < osl :: Mutex > theGuard ( m_aMutex ) ; rtl :: OUString aUri ( composeCurrentUri ( inPath ) ) ; SerfLock * pLock = m_aSerfLockStore . findByUri ( aUri ) ; if ( ! pLock ) { throw DAVException ( DAVException :: DAV_NOT_LOCKED ) ; } Init ( rEnv ) ; boost :: shared_ptr < SerfRequestProcessor > aReqProc ( createReqProc ( inPath ) ) ; apr_status_t status = APR_SUCCESS ; ucb :: Lock inLock = pLock -> getLock ( ) ; m_aSerfLockStore . removeLock ( pLock ) ; delete pLock ; aReqProc -> processUnlock ( inPath , inLock , status ) ; HandleError ( aReqProc ) ; }
UNLOCK called from external (DAVResourceAccess)
UNLOCK called from external ( DAVResourceAccess )
// remove lock from lockstore // so, if something goes wrong, we don't refresh it anymore // remove existing lock // HandleError will handle the error and throw an exception, if needed