1: <?php
2: /**
3: * Horde_SyncMl_DeviceInfo represents a device information set according to the
4: * SyncML specification.
5: *
6: * A DeviceInfo object is created by Horde_SyncMl_Command_Put from an
7: * appropriate XML message. Horde_SyncMl_Command_Put directly populates the
8: * members variables.
9: *
10: * The current implementation should handle all DevInf 1.1 DTD elements
11: * except <DSMem> entries.
12: *
13: * Copyright 2005-2012 Horde LLC (http://www.horde.org/)
14: *
15: * See the enclosed file COPYING for license information (LGPL). If you
16: * did not receive this file, see http://www.horde.org/licenses/lgpl21.
17: *
18: * @author Karsten Fourmont <karsten@horde.org>
19: * @author Jan Schneider <jan@horde.org>
20: * @package SyncMl
21: */
22: class Horde_SyncMl_DeviceInfo
23: {
24: /**
25: * The major and minor version identifier of the Device Information DTD.
26: *
27: * @var string
28: */
29: public $VerDTD;
30:
31: /**
32: * The name of the manufacturer of the device.
33: *
34: * @var string
35: */
36: public $Man;
37:
38: /**
39: * The model name or model number of the device.
40: *
41: * @var string
42: */
43: public $Mod;
44:
45: /**
46: * The OEM (Original Equipment Manufacturer) of the device.
47: *
48: * @var string
49: */
50: public $OEM;
51:
52: /**
53: * The firmware version of the device.
54: *
55: * @var string
56: */
57: public $FwV;
58:
59: /**
60: * The software version of the device.
61: *
62: * @var string
63: */
64: public $SwV;
65:
66: /**
67: * The hardware version of the device.
68: *
69: * @var string
70: */
71: public $HwV;
72:
73: /**
74: * The (globally unique) identifier of the source synchronization device.
75: *
76: * @var string
77: */
78: public $DevID;
79:
80: /**
81: * The type of the source synchronization device.
82: *
83: * @var string
84: */
85: public $DevTyp;
86:
87: /**
88: * Array of Horde_SyncMl_DataStore objects.
89: *
90: * @var array
91: */
92: public $DataStores = array();
93:
94: /**
95: * Multidimensional array that specifies the content type capabilities of
96: * the device.
97: *
98: * Example: array('text/x-vcard' => array('FN' => Horde_SyncMl_Property))
99: *
100: * @var array
101: */
102: public $CTCaps;
103:
104: /**
105: * The non-standard, experimental extensions supported by the device.
106: *
107: * A hash with <XNam> elements as keys and arrays of <XVal> elements as
108: * values.
109: * Example: array('X-Foo-Bar' => array(1, 'foo'))
110: *
111: * @var array
112: */
113: public $Exts;
114:
115: /**
116: * Whether the device supports UTC based time.
117: *
118: * @var boolean
119: */
120: public $UTC;
121:
122: /**
123: * Whether the device supports handling of large objects.
124: *
125: * @var boolean
126: */
127: public $SupportLargeObjs;
128:
129: /**
130: * Whether the device supports number of changes.
131: *
132: * @var boolean
133: */
134: public $SupportNumberOfChanges;
135:
136: /**
137: * Returns a Horde_SyncMl_DataStore object for a certain source URI.
138: *
139: * @param string $source URI A source URI.
140: *
141: * @return Horde_SyncMl_DataStore A data store object or null if none found for
142: * the source URI.
143: */
144: public function getDataStore($sourceURI)
145: {
146: foreach ($this->DataStores as $dataStore) {
147: if ($dataStore->SourceRef == $sourceURI) {
148: return $dataStore;
149: }
150: }
151: return null;
152: }
153: }
154: