* @return Horde_Alarm The newly created concrete instance.
* @throws Horde_Alarm_Exception
*/
- static public function factory($driver = null, $params = array())
+ static public function factory($driver, array $params = array())
{
- if (empty($driver)) {
- return new Horde_Alarm($params);
- }
-
$driver = ucfirst(basename($driver));
$class = __CLASS__ . '_' . $driver;
* 'ttl' - (integer) Time to live value, in seconds.
* </pre>
*/
- public function __construct($params = array())
+ public function __construct(array $params = array())
{
if (isset($params['logger'])) {
$this->_logger = $params['logger'];
* @return array A list of alarm hashes.
* @throws Horde_Alarm_Exception
*/
- public function listAlarms($user = null, $time = null, $load = false,
- $preload = true)
+ public function listAlarms($user = null, Horde_Date $time = null,
+ $load = false, $preload = true)
{
if (empty($time)) {
$time = new Horde_Date(time());
* @return array A list of alarm hashes.
* @throws Horde_Alarm_Exception
*/
- abstract protected function _list($user, $time);
+ abstract protected function _list($user, Horde_Date $time);
/**
* Returns an alarm hash from the backend.
*
* @throws Horde_Alarm_Exception
*/
- public function set($alarm, $keepsnooze = false)
+ public function set(array $alarm, $keepsnooze = false)
{
if (isset($alarm['mail']['body'])) {
$alarm['mail']['body'] = $this->_toDriver($alarm['mail']['body']);
*
* @throws Horde_Alarm_Exception
*/
- abstract protected function _add($alarm);
+ abstract protected function _add(array $alarm);
/**
* Updates an alarm hash in the backend.
*
* @throws Horde_Alarm_Exception
*/
- abstract protected function _update($alarm, $keepsnooze = false);
+ abstract protected function _update(array $alarm, $keepsnooze = false);
/**
* Updates internal alarm properties, i.e. properties not determined by
*
* @throws Horde_Alarm_Exception
*/
- abstract protected function _internal($id, $user, $internal);
+ abstract protected function _internal($id, $user, array $internal);
/**
* Returns whether an alarm with the given id exists already.
*
* @throws Horde_Alarm_Exception
*/
- abstract protected function _snooze($id, $user, $snooze);
+ abstract protected function _snooze($id, $user, Horde_Date $snooze);
/**
* Returns whether an alarm is snoozed.
*
* @throws Horde_Alarm_Exception
*/
- public function isSnoozed($id, $user, $time = null)
+ public function isSnoozed($id, $user, Horde_Date $time = null)
{
if (is_null($time)) {
$time = new Horde_Date(time());
* @return boolean True if the alarm is snoozed.
* @throws Horde_Alarm_Exception
*/
- abstract protected function _isSnoozed($id, $user, $time);
+ abstract protected function _isSnoozed($id, $user, Horde_Date $time);
/**
* Dismisses an alarm.
* @throws Horde_Alarm_Exception
*/
public function notify($user = null, $load = true, $preload = true,
- $exclude = array())
+ array $exclude = array())
{
try {
$alarms = $this->listAlarms($user, null, $load, $preload);
*
* @param array $alarm An alarm hash.
*/
- protected function _notify($alarm)
+ protected function _notify(array $alarm)
{
static $sound_played;
* @throws Horde_Mime_Exception
* @throws Horde_Alarm_Exception
*/
- protected function _mail($alarm)
+ protected function _mail(array $alarm)
{
if (!empty($alarm['internal']['mail']['sent'])) {
return;
*
* @param array $alarm An alarm hash.
*/
- protected function _sms($alarm)
+ protected function _sms(array $alarm)
{
}
* @return array A list of alarm hashes.
* @throws Horde_Alarm_Exception
*/
- protected function _list($user, $time)
+ protected function _list($user, Horde_Date $time)
{
$query = sprintf('SELECT alarm_id, alarm_uid, alarm_start, alarm_end, alarm_methods, alarm_params, alarm_title, alarm_text, alarm_snooze, alarm_internal FROM %s WHERE alarm_dismissed = 0 AND ((alarm_snooze IS NULL AND alarm_start <= ?) OR alarm_snooze <= ?) AND (alarm_end IS NULL OR alarm_end >= ?)%s ORDER BY alarm_start, alarm_end',
$this->_params['table'],
/**
*/
- protected function _getHash($alarm)
+ protected function _getHash(array $alarm)
{
return array(
'id' => $alarm['alarm_id'],
*
* @throws Horde_Alarm_Exception
*/
- protected function _add($alarm)
+ protected function _add(array $alarm)
{
$query = sprintf('INSERT INTO %s (alarm_id, alarm_uid, alarm_start, alarm_end, alarm_methods, alarm_params, alarm_title, alarm_text, alarm_snooze) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', $this->_params['table']);
$values = array(
*
* @throws Horde_Alarm_Exception
*/
- protected function _update($alarm, $keepsnooze = false)
+ protected function _update(array $alarm, $keepsnooze = false)
{
$query = sprintf('UPDATE %s set alarm_start = ?, alarm_end = ?, alarm_methods = ?, alarm_params = ?, alarm_title = ?, alarm_text = ?%s WHERE alarm_id = ? AND %s',
$this->_params['table'],
*
* @throws Horde_Alarm_Exception
*/
- protected function _internal($id, $user, $internal)
+ protected function _internal($id, $user, array $internal)
{
$query = sprintf('UPDATE %s set alarm_internal = ? WHERE alarm_id = ? AND %s',
$this->_params['table'],
*
* @throws Horde_Alarm_Exception
*/
- protected function _snooze($id, $user, $snooze)
+ protected function _snooze($id, $user, Horde_Date $snooze)
{
$query = sprintf('UPDATE %s set alarm_snooze = ? WHERE alarm_id = ? AND %s',
$this->_params['table'],
* @return boolean True if the alarm is snoozed.
* @throws Horde_Alarm_Exception
*/
- protected function _isSnoozed($id, $user, $time)
+ protected function _isSnoozed($id, $user, Horde_Date $time)
{
$query = sprintf('SELECT 1 FROM %s WHERE alarm_id = ? AND %s AND (alarm_dismissed = 1 OR (alarm_snooze IS NOT NULL AND alarm_snooze >= ?))',
$this->_params['table'],
/**
*/
- protected function _initConn($db)
+ protected function _initConn(DB_common $db)
{
// Set DB portability options.
switch ($db->phptype) {