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