From: Michael J. Rubinsky Date: Sat, 24 Apr 2010 22:42:36 +0000 (-0400) Subject: Add some methods to get bulk device info and last sync times X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=fd38a01cec877df852276cc3d0689387acc2a2f2;p=horde.git Add some methods to get bulk device info and last sync times --- diff --git a/framework/ActiveSync/lib/Horde/ActiveSync/State/Base.php b/framework/ActiveSync/lib/Horde/ActiveSync/State/Base.php index 57baec162..5949ba33f 100644 --- a/framework/ActiveSync/lib/Horde/ActiveSync/State/Base.php +++ b/framework/ActiveSync/lib/Horde/ActiveSync/State/Base.php @@ -565,4 +565,22 @@ abstract class Horde_ActiveSync_State_Base */ abstract public function setHeartbeatInterval($heartbeat); + /** + * List all devices that we know about. + * + * @return array An array of device hashes + * @throws Horde_ActiveSync_Exception + */ + abstract public function listDevices(); + + /** + * Get the last time a particular device issued a SYNC request. + * + * @param string $devId The device id + * + * @return integer The timestamp of the last sync, regardless of collection + * @throws Horde_ActiveSync_Exception + */ + abstract public function getLastSyncTimestamp($devId); + } \ No newline at end of file diff --git a/framework/ActiveSync/lib/Horde/ActiveSync/State/File.php b/framework/ActiveSync/lib/Horde/ActiveSync/State/File.php index 7475a74eb..13a48c9ce 100644 --- a/framework/ActiveSync/lib/Horde/ActiveSync/State/File.php +++ b/framework/ActiveSync/lib/Horde/ActiveSync/State/File.php @@ -592,6 +592,24 @@ class Horde_ActiveSync_State_File extends Horde_ActiveSync_State_Base $this->_gc($syncKey, true); } + public function listDevices() + { + throw new Horde_ActiveSync_Exception('Not Implemented'); + } + + /** + * Get the last time a particular device issued a SYNC request. + * + * @param string $devId The device id + * + * @return integer The timestamp of the last sync, regardless of collection + * @throws Horde_ActiveSync_Exception + */ + public function getLastSyncTimestamp($devId) + { + throw new Horde_ActiveSync_Exception('Not Implemented'); + } + /** * Garbage collector - clean up from previous sync * requests. diff --git a/framework/ActiveSync/lib/Horde/ActiveSync/State/History.php b/framework/ActiveSync/lib/Horde/ActiveSync/State/History.php index bdb96de64..480368512 100644 --- a/framework/ActiveSync/lib/Horde/ActiveSync/State/History.php +++ b/framework/ActiveSync/lib/Horde/ActiveSync/State/History.php @@ -478,7 +478,6 @@ class Horde_ActiveSync_State_History extends Horde_ActiveSync_State_Base public function deviceExists($devId) { $query = 'SELECT COUNT(*) FROM ' . $this->_syncDeviceTable . ' WHERE device_id = ?'; - try { return $this->_db->selectValue($query, array($devId)); } catch (Horde_Db_Exception $e) { @@ -487,6 +486,40 @@ class Horde_ActiveSync_State_History extends Horde_ActiveSync_State_Base } /** + * List all devices that we know about. + * + * @return array An array of device hashes + * @throws Horde_ActiveSync_Exception + */ + public function listDevices() + { + $sql = 'SELECT * from ' . $this->_syncDeviceTable; + try { + return $this->_db->selectAll($sql); + } catch (Horde_Db_Exception $e) { + throw new Horde_ActiveSync_Exception($e); + } + } + + /** + * Get the last time a particular device issued a SYNC request. + * + * @param string $devId The device id + * + * @return integer The timestamp of the last sync, regardless of collection + * @throws Horde_ActiveSync_Exception + */ + public function getLastSyncTimestamp($devId) + { + $sql = 'SELECT sync_time FROM ' . $this->_syncStateTable . ' WHERE sync_devid = ?'; + try { + return $this->_db->selectValue($sql, array($devId)); + } catch (Horde_Db_Exception $e) { + throw new Horde_ActiveSync_Exception($e); + } + } + + /** * Load a specific collection's ping state. Ping state must already have * been loaded. *