Changes according to note 595 in:

http://bugs.campware.org/view.php?id=494
This commit is contained in:
tomas 2005-01-10 23:22:30 +00:00
parent dff985ecb2
commit 70c4802b25
6 changed files with 107 additions and 21 deletions

View File

@ -23,7 +23,7 @@
Author : $Author: tomas $
Version : $Revision: 1.13 $
Version : $Revision: 1.14 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/BasicStor.php,v $
------------------------------------------------------------------------------*/
@ -36,6 +36,7 @@ define('GBERR_NONE', 45);
define('GBERR_AOBJNEX', 46);
define('GBERR_NOTF', 47);
define('GBERR_SESS', 48);
define('GBERR_PREF', 49);
define('GBERR_NOTIMPL', 50);
@ -49,7 +50,7 @@ require_once "StoredFile.php";
* Core of LiveSupport file storage module
*
* @author $Author: tomas $
* @version $Revision: 1.13 $
* @version $Revision: 1.14 $
* @see Alib
*/
class BasicStor extends Alib{

View File

@ -23,7 +23,7 @@
Author : $Author: tomas $
Version : $Revision: 1.2 $
Version : $Revision: 1.3 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/Prefs.php,v $
------------------------------------------------------------------------------*/
@ -69,6 +69,10 @@ class Prefs{
}
$val = $this->readVal($subjid, $key);
if(PEAR::isError($val)) return $val;
if($val === FALSE){
return PEAR::raiseError("Prefs::loadPref: invalid preference key",
GBERR_PREF);
}
return $val;
}
@ -88,15 +92,39 @@ class Prefs{
return PEAR::raiseError("Prefs::loadPref: invalid session id",
GBERR_SESS);
}
$r = $this->delete($subjid, $key);
$r = $this->update($subjid, $key, $value);
if(PEAR::isError($r)) return $r;
if($value != ''){
if($r === FALSE){
$r = $this->insert($subjid, $key, $value);
if(PEAR::isError($r)) return $r;
}
return TRUE;
}
/**
* Delete preference record by session id
*
* @param sessid string, session id
* @param key string, preference key
* @return boolean
*/
function delPref($sessid, $key)
{
$subjid = $this->gb->getSessUserId($sessid);
if(PEAR::isError($subjid)) return $subjid;
if(is_null($subjid)){
return PEAR::raiseError("Prefs::loadPref: invalid session id",
GBERR_SESS);
}
$r = $this->delete($subjid, $key);
if(PEAR::isError($r)) return $r;
if($r === FALSE){
return PEAR::raiseError("Prefs::delPref: invalid preference key",
GBERR_PREF);
}
return TRUE;
}
/* ===================================================== gb level methods */
/**
* Insert of new preference record
@ -134,7 +162,7 @@ class Prefs{
WHERE subjid=$subjid AND keystr='$keystr'
");
if(PEAR::isError($val)) return $val;
if(is_null($val)) return '';
if(is_null($val)) return FALSE;
return $val;
}
@ -154,6 +182,7 @@ class Prefs{
WHERE subjid=$subjid AND keystr='$keystr'
");
if(PEAR::isError($r)) return $r;
if($this->dbc->affectedRows()<1) return FALSE;
return TRUE;
}
@ -171,6 +200,7 @@ class Prefs{
WHERE subjid=$subjid AND keystr='$keystr'
");
if(PEAR::isError($r)) return $r;
if($this->dbc->affectedRows()<1) return FALSE;
return TRUE;
}

View File

@ -23,7 +23,7 @@
Author : $Author: tomas $
Version : $Revision: 1.3 $
Version : $Revision: 1.4 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/xmlrpc/XR_LocStor.php,v $
------------------------------------------------------------------------------*/
@ -1244,11 +1244,12 @@ class XR_LocStor extends LocStor{
* <li> 805 - xr_loadPref:
* &lt;message from lower layer&gt; </li>
* <li> 848 - invalid session id.</li>
* <li> 849 - invalid preference key.</li>
* </ul>
*
* @param input XMLRPC struct
* @return XMLRPC struct
* @see LocStor::getAudioClip
* @see Pref::loadPref
*/
function xr_loadPref($input)
{
@ -1259,7 +1260,7 @@ class XR_LocStor extends LocStor{
$res = $pr->loadPref($r['sessid'], $r['key']);
if(PEAR::isError($res)){
$ec = intval($res->getCode());
return new XML_RPC_Response(0, 800+($ec == 48 ? 48 : 5 ),
return new XML_RPC_Response(0, 800+($ec == 48 || $ec == 49 ? $ec : 5 ),
"xr_getAudioClip: ".$res->getMessage()." ".$res->getUserInfo()
);
@ -1298,7 +1299,7 @@ class XR_LocStor extends LocStor{
*
* @param input XMLRPC struct
* @return XMLRPC struct
* @see LocStor::getAudioClip
* @see Pref::savePref
*/
function xr_savePref($input)
{
@ -1310,13 +1311,62 @@ class XR_LocStor extends LocStor{
if(PEAR::isError($res)){
#return new XML_RPC_Response(0, 805,
$ec = intval($res->getCode());
return new XML_RPC_Response(0, 800+($ec == 48 ? 48 : 5 ),
return new XML_RPC_Response(0, 800+($ec == 48 ? $ec : 5 ),
"xr_getAudioClip: ".$res->getMessage()." ".$res->getUserInfo()
);
}
return new XML_RPC_Response(XML_RPC_encode(array('status'=>$res)));
}
/**
* Delete user preference record
*
* The XML-RPC name of this method is "locstor.delPref".
*
* The input parameters are an XML-RPC struct with the following
* fields:
* <ul>
* <li> sessid : string - session id </li>
* <li> key : string - preference key </li>
* </ul>
*
* On success, returns a XML-RPC struct with single field:
* <ul>
* <li> status : boolean</li>
* </ul>
*
* On errors, returns an XML-RPC error response.
* The possible error codes and error message are:
* <ul>
* <li> 3 - Incorrect parameters passed to method:
* Wanted ... , got ... at param </li>
* <li> 801 - wrong 1st parameter, struct expected.</li>
* <li> 805 - xr_delPref:
* &lt;message from lower layer&gt; </li>
* <li> 848 - invalid session id.</li>
* <li> 849 - invalid preference key.</li>
* </ul>
*
* @param input XMLRPC struct
* @return XMLRPC struct
* @see Pref::delPref
*/
function xr_delPref($input)
{
list($ok, $r) = $this->_xr_getPars($input);
if(!$ok) return $r;
require_once '../../../storageServer/var/Prefs.php';
$pr =& new Prefs(&$this);
$res = $pr->delPref($r['sessid'], $r['key']);
if(PEAR::isError($res)){
#return new XML_RPC_Response(0, 805,
$ec = intval($res->getCode());
return new XML_RPC_Response(0, 800+($ec == 48 || $ec == 49 ? $ec : 5 ),
"xr_getAudioClip: ".$res->getMessage()." ".$res->getUserInfo()
);
}
return new XML_RPC_Response(XML_RPC_encode(array('status'=>$res)));
}
/* ------------------------------------------- test methods for debugging */
/**

View File

@ -23,7 +23,7 @@
#
#
# Author : $Author: tomas $
# Version : $Revision: 1.13 $
# Version : $Revision: 1.14 $
# Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/xmlrpc/testRunner.sh,v $
#-------------------------------------------------------------------------------
@ -231,7 +231,7 @@ prefTest() {
$XR_CLI savePref $SESSID "$PREFKEY" "$PREFVAL"|| exit $?
echo -n "# loadPref: "
VAL=`$XR_CLI loadPref $SESSID "$PREFKEY"` || \
{ ERN=$?; echo $RES; exit $ERN; }
{ ERN=$?; echo $VAL; exit $ERN; }
echo "$VAL "
if [ "x$VAL" != "x$PREFVAL" ] ; then
echo " NOT MATCH"
@ -241,12 +241,14 @@ prefTest() {
else
echo "# pref value check: OK"
fi
echo -n "# savePref: "
$XR_CLI savePref $SESSID "$PREFKEY" ""|| exit $?
echo -n "# delPref: "
$XR_CLI delPref $SESSID "$PREFKEY"|| exit $?
if [ $DEBUG ]; then
echo -n "# loadPref: "
VAL=`$XR_CLI loadPref $SESSID "$PREFKEY"` || \
{ ERN=$?; echo $RES; exit $ERN; }
VAL=`$XR_CLI loadPref $SESSID "$PREFKEY"` || echo $?
else
echo $VAL
fi
}
logout() {

View File

@ -23,7 +23,7 @@
Author : $Author: tomas $
Version : $Revision: 1.16 $
Version : $Revision: 1.17 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/xmlrpc/xrLocStor.php,v $
------------------------------------------------------------------------------*/
@ -116,6 +116,7 @@ $methods = array(
'loadPref' => 'Load user preference value.',
'savePref' => 'Save user preference value.',
'delPref' => 'Delete user preference record.',
);
$defs = array();

View File

@ -24,7 +24,7 @@
#
#
# Author : $Author: tomas $
# Version : $Revision: 1.12 $
# Version : $Revision: 1.13 $
# Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/xmlrpc/Attic/xr_cli_test.py,v $
#
#------------------------------------------------------------------------------
@ -188,6 +188,8 @@ try:
print server.locstor.loadPref({'sessid':pars[0], 'key':pars[1]})['value']
elif method=="savePref":
print server.locstor.savePref({'sessid':pars[0], 'key':pars[1], 'value':pars[2]})
elif method=="delPref":
print server.locstor.delPref({'sessid':pars[0], 'key':pars[1]})
elif method=="resetStorage":
print server.locstor.resetStorage({})
elif method=="openPut":