_authorize('write', $parid, $sessid)) !== TRUE)
return $res;
return $this->bsCreateFolder($parid, $folderName);
}
/**
* Store new file in the storage
*
* @param parid int, parent id
* @param fileName string, name for new file
* @param mediaFileLP string, local path of media file
* @param mdataFileLP string, local path of metadata file
* @param sessid string, session id
* @param gunid string, global unique id OPTIONAL
* @param ftype string, internal file type
* @return int
* @exception PEAR::error
*/
function putFile($parid, $fileName,
$mediaFileLP, $mdataFileLP, $sessid='',
$gunid=NULL, $ftype='audioclip')
{
if(($res = $this->_authorize('write', $parid, $sessid)) !== TRUE)
return $res;
return $this->bsPutFile(
$parid, $fileName, $mediaFileLP, $mdataFileLP, $gunid, $ftype
);
}
/**
* Analyze media file for internal metadata information
*
* @param id int, virt.file's local id
* @param sessid string, session id
* @return array
*/
function analyzeFile($id, $sessid='')
{
if(($res = $this->_authorize('read', $id, $sessid)) !== TRUE)
return $res;
return $this->bsAnalyzeFile($id);
}
/**
* Rename file
*
* @param id int, virt.file's local id
* @param newName string
* @param sessid string, session id
* @return boolean or PEAR::error
*/
function renameFile($id, $newName, $sessid='')
{
$parid = $this->getParent($id);
if(($res = $this->_authorize('write', $parid, $sessid)) !== TRUE)
return $res;
return $this->bsRenameFile($id, $newName);
}
/**
* Move file
*
* @param id int, virt.file's local id
* @param did int, destination folder local id
* @param sessid string, session id
* @return boolean or PEAR::error
*/
function moveFile($id, $did, $sessid='')
{
if(($res = $this->_authorize(
array('read', 'write'), array($id, $did), $sessid
)) !== TRUE) return $res;
return $this->bsMoveFile($id, $did);
}
/**
* Copy file
*
* @param id int, virt.file's local id
* @param did int, destination folder local id
* @param sessid string, session id
* @return boolean or PEAR::error
*/
function copyFile($id, $did, $sessid='')
{
if(($res = $this->_authorize(
array('read', 'write'), array($id, $did), $sessid
)) !== TRUE) return $res;
return $this->bsCopyFile($id, $did);
}
/**
* Delete file
*
* @param id int, virt.file's local id
* @param sessid int
* @return true or PEAR::error
*/
function deleteFile($id, $sessid='')
{
$parid = $this->getParent($id);
if(($res = $this->_authorize('write', $parid, $sessid)) !== TRUE)
return $res;
return $this->bsDeleteFile($id);
}
/* ---------------------------------------------- replicas, versions etc. */
/**
* Create replica.
* TODO: NOT FINISHED
*
* @param id int, virt.file's local id
* @param did int, destination folder local id
* @param replicaName string, name of new replica
* @param sessid string, session id
* @return int, local id of new object
*/
function createReplica($id, $did, $replicaName='', $sessid='')
{
if(($res = $this->_authorize(
array('read', 'write'), array($id, $did), $sessid
)) !== TRUE) return $res;
return $this->bsCreateReplica($id, $did, $replicaName);
}
/**
* Create version.
* TODO: NOT FINISHED
*
* @param id int, virt.file's local id
* @param did int, destination folder local id
* @param versionLabel string, name of new version
* @param sessid string, session id
* @return int, local id of new object
*/
function createVersion($id, $did, $versionLabel, $sessid='')
{
return $this->bsCreateVersion($id, $did, $versionLabel);
}
/* ------------------------------------------------------------- metadata */
/**
* Replace metadata with new XML file or string
*
* @param id int, virt.file's local id
* @param mdata string, XML string or local path of metadata XML file
* @param mdataLoc string, metadata location: 'file'|'string'
* @param sessid string, session id
* @return boolean or PEAR::error
*/
function replaceMetadata($id, $mdata, $mdataLoc='file', $sessid='')
{
if(($res = $this->_authorize('write', $id, $sessid)) !== TRUE)
return $res;
return $this->bsReplaceMetadata($id, $mdata, $mdataLoc);
}
/**
* Get metadata XML tree as string
*
* @param id int, virt.file's local id
* @param sessid string, session id
* @return string or PEAR::error
*/
function getMdata($id, $sessid='')
{
if(($res = $this->_authorize('read', $id, $sessid)) !== TRUE)
return $res;
return $this->bsGetMetadata($id);
}
/**
* Get metadata element value
*
* @param id int, virt.file's local id
* @param category string, metadata element name
* @param sessid string, session id
* @return array of matching records
*/
function getMdataValue($id, $category, $sessid='')
{
if(($res = $this->_authorize('read', $id, $sessid)) !== TRUE)
return $res;
return $this->bsGetMetadataValue($id, $category);
}
/**
* Search in local metadata database.
*
* @param criteria hash, with following structure:
*