<?php
/**
 * This file is part of the set of the DDR Simple API definition. It contains the
 * definition of the {@link SystemException} class.
 * 
 * @author Sylvain Lequeux
 * @author Francois Daoust <fd@w3.org>
 * @package AskPythia
 * @subpackage Interface
 * @version $Revision: 1.8 $
 * @license http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231.html W3C Software Notice and License
 * @copyright Copyright (c) 2009, W3C (MIT, ERCIM, Keio)
 */

/**
 * {@link http://www.w3.org/TR/DDR-Simple-API/#sec-SystemException SystemException}
 * class as defined in the {@link http://www.w3.org/TR/DDR-Simple-API/
 * DDR Simple API} standard.
 * 
 * This exception is thrown by DDR Simple API implementations when they encounter
 * unrecoverable errors. It extends the RuntimeException class. The DDR Simple
 * API only defines two methods for the class that are already defined in
 * RuntimeException: {@link RuntimeException::getCode()} and
 * {@link RuntimeException::getMessage()}.
 * 
 * The exception should be thrown using the constructor of the base Exception
 * class: throw new SystemException([$message  [, $code  [, $previous ]]]). 
 * 
 * @author Sylvain Lequeux
 * @author Francois Daoust <fd@w3.org>
 * @package AskPythia
 * @subpackage Interface
 * @link http://www.w3.org/TR/DDR-Simple-API/ Device Description Repository Simple API
 * @version $Revision: 1.8 $
 * @license http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231.html W3C Software Notice and License
 * @copyright Copyright (c) 2009, W3C (MIT, ERCIM, Keio)
 */
class SystemException extends RuntimeException {
	/**
	 * @var int The implementation cannot continue with the processing of the
	 *          current request due to an unexpected failure
	 *          (disconnection from a database, for example).
	 */
	static public $CANNOT_PROCEED = 500;
	/**
	 * @var int A method has been passed an illegal or inappropriate argument
	 *          (a null argument where it is not allowed, for example).
	 */
	static public $ILLEGAL_ARGUMENT = 400;
}