1: <?php
2: /**
3: * Copyright 2005-2012 Horde LLC (http://www.horde.org/)
4: *
5: * See the enclosed file COPYING for license information (LGPL). If you
6: * did not receive this file, see http://www.horde.org/licenses/lgpl21.
7: *
8: * @author Karsten Fourmont <karsten@horde.org>
9: * @package SyncMl
10: */
11: class Horde_SyncMl
12: {
13: const ALERT_DISPLAY = 100;
14:
15: const ALERT_TWO_WAY = 200;
16: const ALERT_SLOW_SYNC = 201;
17: const ALERT_ONE_WAY_FROM_CLIENT = 202;
18: const ALERT_REFRESH_FROM_CLIENT = 203;
19: const ALERT_ONE_WAY_FROM_SERVER = 204;
20: const ALERT_REFRESH_FROM_SERVER = 205;
21:
22: // Not implemented.
23: const ALERT_TWO_WAY_BY_SERVER = 206;
24: const ALERT_ONE_WAY_FROM_CLIENT_BY_SERVER = 207;
25: const ALERT_REFRESH_FROM_CLIENT_BY_SERVER = 208;
26: const ALERT_ONE_WAY_FROM_SERVER_BY_SERVER = 209;
27: const ALERT_REFRESH_FROM_SERVER_BY_SERVER = 210;
28:
29: const ALERT_RESULT_ALERT = 221;
30: const ALERT_NEXT_MESSAGE = 222;
31: const ALERT_NO_END_OF_DATA = 223;
32:
33: // Not (really) implemented.
34: const ALERT_SUSPEND = 224; // New in SyncML 1.2
35: const ALERT_RESUME = 225; // New in SyncML 1.2
36:
37: const MIME_SYNCML_XML = 'application/vnd.syncml+xml';
38: const MIME_SYNCML_WBXML = 'application/vnd.syncml+wbxml';
39:
40: const MIME_SYNCML_DEVICE_INFO_XML = 'application/vnd.syncml-devinf+xml';
41: const MIME_SYNCML_DEVICE_INFO_WBXML = 'application/vnd.syncml-devinf+wbxml';
42:
43: const MIME_TEXT_PLAIN = 'text/plain';
44: const MIME_VCARD_V21 = 'text/x-vcard';
45: const MIME_VCARD_V30 = 'text/vcard';
46:
47: const MIME_VCALENDAR = 'text/x-vcalendar';
48: const MIME_ICALENDAR = 'text/calendar';
49: const MIME_XML_ICALENDAR = 'application/vnd.syncml-xcal';
50:
51: const MIME_MESSAGE = 'text/message';
52:
53: const MIME_SYNCML_XML_EMAIL = 'application/vnd.syncml-xmsg';
54: const MIME_SYNCML_XML_BOOKMARK = 'application/vnd.syncml-xbookmark';
55: const MIME_SYNCML_RELATIONAL_OBJECT = 'application/vnd.syncml-xrelational';
56:
57: const RESPONSE_IN_PROGRESS = 101;
58:
59: const RESPONSE_OK = 200;
60: const RESPONSE_ITEM_ADDED = 201;
61: const RESPONSE_ACCEPTED_FOR_PROCESSING = 202;
62: const RESPONSE_NONAUTHORIATATIVE_RESPONSE = 203;
63: const RESPONSE_NO_CONTENT = 204;
64: const RESPONSE_RESET_CONTENT = 205;
65: const RESPONSE_PARTIAL_CONTENT = 206;
66: const RESPONSE_CONFLICT_RESOLVED_WITH_MERGE = 207;
67: const RESPONSE_CONFLICT_RESOLVED_WITH_CLIENT_WINNING = 208;
68: const RESPONSE_CONFILCT_RESOLVED_WITH_DUPLICATE = 209;
69: const RESPONSE_DELETE_WITHOUT_ARCHIVE = 210;
70: const RESPONSE_ITEM_NO_DELETED = 211;
71: const RESPONSE_AUTHENTICATION_ACCEPTED = 212;
72: const RESPONSE_CHUNKED_ITEM_ACCEPTED_AND_BUFFERED = 213;
73: const RESPONSE_OPERATION_CANCELLED = 214;
74: const RESPONSE_NO_EXECUTED = 215;
75: const RESPONSE_ATOMIC_ROLL_BACK_OK = 216;
76:
77: const RESPONSE_MULTIPLE_CHOICES = 300;
78: // Need to change names.
79: // const RESPONSE_MULTIPLE_CHOICES = 301;
80: // const RESPONSE_MULTIPLE_CHOICES = 302;
81: // const RESPONSE_MULTIPLE_CHOICES = 303;
82: // const RESPONSE_MULTIPLE_CHOICES = 304;
83: const RESPONSE_USE_PROXY = 305;
84:
85: const RESPONSE_BAD_REQUEST = 400;
86: const RESPONSE_INVALID_CREDENTIALS = 401;
87: // Need to change names.
88: // const RESPONSE_INVALID_CREDENTIALS = 402;
89: // const RESPONSE_INVALID_CREDENTIALS = 403;
90: const RESPONSE_NOT_FOUND = 404;
91: // Need to change names.
92: // const RESPONSE_INVALID_CREDENTIALS = 405;
93: // const RESPONSE_INVALID_CREDENTIALS = 406;
94: const RESPONSE_CREDENTIALS_MISSING = 407;
95: // const RESPONSE_INVALID_CREDENTIALS = 408;
96: // const RESPONSE_INVALID_CREDENTIALS = 409;
97: // const RESPONSE_INVALID_CREDENTIALS = 410;
98: // const RESPONSE_INVALID_CREDENTIALS = 411;
99: // const RESPONSE_INVALID_CREDENTIALS = 412;
100: // const RESPONSE_INVALID_CREDENTIALS = 413;
101: // const RESPONSE_INVALID_CREDENTIALS = 414;
102: // const RESPONSE_INVALID_CREDENTIALS = 415;
103: const RESPONSE_REQUEST_SIZE_TOO_BIG = 416;
104: // Need to change names.
105: // const RESPONSE_INVALID_CREDENTIALS = 417;
106: // const RESPONSE_INVALID_CREDENTIALS = 418;
107: // const RESPONSE_INVALID_CREDENTIALS = 419;
108: // const RESPONSE_INVALID_CREDENTIALS = 420;
109: // const RESPONSE_INVALID_CREDENTIALS = 421;
110: // const RESPONSE_INVALID_CREDENTIALS = 422;
111: // const RESPONSE_INVALID_CREDENTIALS = 423;
112: const RESPONSE_SIZE_MISMATCH = 424;
113:
114: const RESPONSE_COMMAND_FAILED = 500;
115: // Need to change names.
116: // const RESPONSE_COMMAND_FAILED = 501;
117: // const RESPONSE_COMMAND_FAILED = 502;
118: // const RESPONSE_COMMAND_FAILED = 503;
119: // const RESPONSE_COMMAND_FAILED = 504;
120: // const RESPONSE_COMMAND_FAILED = 505;
121: // const RESPONSE_COMMAND_FAILED = 506;
122: // const RESPONSE_COMMAND_FAILED = 507;
123: const RESPONSE_REFRESH_REQUIRED = 508;
124: // const RESPONSE_COMMAND_FAILED = 509;
125: // const RESPONSE_COMMAND_FAILED = 510;
126: // const RESPONSE_COMMAND_FAILED = 511;
127: // const RESPONSE_COMMAND_FAILED = 512;
128: // const RESPONSE_COMMAND_FAILED = 513;
129: // const RESPONSE_COMMAND_FAILED = 514;
130: // const RESPONSE_COMMAND_FAILED = 515;
131: // const RESPONSE_ATOMIC_ROLL_BACK_FAILED = 516;
132:
133: const NAME_SPACE_URI_SYNCML = 'syncml:syncml';
134: const NAME_SPACE_URI_SYNCML_1_1 = 'syncml:syncml1.1';
135: const NAME_SPACE_URI_SYNCML_1_2 = 'syncml:syncml1.2';
136: const NAME_SPACE_URI_METINF = 'syncml:metinf';
137: const NAME_SPACE_URI_METINF_1_1 = 'syncml:metinf';
138: const NAME_SPACE_URI_METINF_1_2 = 'syncml:metinf';
139: const NAME_SPACE_URI_DEVINF = 'syncml:devinf';
140: const NAME_SPACE_URI_DEVINF_1_1 = 'syncml:devinf';
141: const NAME_SPACE_URI_DEVINF_1_2 = 'syncml:devinf';
142:
143: /**
144: * Maximum Size of a data object. Currently global for all databases.
145: */
146: const SERVER_MAXOBJSIZE = 1000000000;
147:
148: /**
149: * Maximum size for one sync message as defined by SyncML protocol spec.
150: */
151: const SERVER_MAXMSGSIZE = 1000000000;
152:
153: /**
154: * The "safety margin" for the closing tags when finishing a message.
155: *
156: * When exporting a data entry, we have to ensure that the size of the
157: * complete message does not exceed MaxMsgSize sent by the client.
158: */
159: const MSG_TRAILER_LEN = 150;
160:
161: /**
162: * Standard size for a complete but empty SyncML message. Used in estimating
163: * the size for a message.
164: */
165: const MSG_DEFAULT_LEN = 1000;
166:
167: /**
168: * If true the client uid<->server uid map will be deleted when a SlowSync
169: * is requested.
170: *
171: * This produces duplicates if there are entries in the client and the
172: * server. This need to be true for the test conformance suite.
173: */
174: const CONFIG_DELETE_MAP_ON_REQUESTED_SLOWSYNC = true;
175:
176: /**
177: * If true the client uid<->server uid map will be deleted when a SlowSync
178: * is done due to an anchor mismatch. An anchor mismatch may happen if a
179: * session terminates unexpectedly.
180: */
181: const CONFIG_DELETE_MAP_ON_ANCHOR_MISMATCH_SLOWSYNC = false;
182: }
183: