You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: textile/features.textile
+41-9Lines changed: 41 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1523,6 +1523,8 @@ h4. ObjectMessage
1523
1523
** @(OM3d)@ The size of the @extras@ property is the string length of its JSON representation
1524
1524
** @(OM3f)@ The size of the @clientId@ property is its string length
1525
1525
** @(OM3e)@ The size of a @null@ or omitted property is zero
1526
+
* @(OM4)@ For @ObjectMessage@ encoding see @ObjectData@ "OD4":#OD4 and @ObjectOperation@ "OOP5":#OOP5 encoding
1527
+
* @(OM5)@ For @ObjectMessage@ decoding see @ObjectData@ "OD5":#OD5 decoding
1526
1528
1527
1529
h4. ObjectOperation
1528
1530
@@ -1535,16 +1537,23 @@ h4. ObjectOperation
1535
1537
** @(OOP3d)@ @counterOp@ @ObjectsCounterOp@ object - the payload for the operation if it is an operation on an @ObjectsCounter@ object type
1536
1538
** @(OOP3e)@ @map@ @ObjectsMap@ object - the payload for the operation if the operation is @MAP_CREATE@. Defines the initial value for the @ObjectsMap@ object
1537
1539
** @(OOP3f)@ @counter@ @ObjectsCounter@ object - the payload for the operation if the operation is @COUNTER_CREATE@. Defines the initial value for the @ObjectsCounter@ object
1538
-
** @(OOP3g)@ @nonce@ string - the nonce, must be present on @COUNTER_CREATE@ and @MAP_CREATE@ operations sent to the server
1539
-
** @(OOP3h)@ @initialValue@ binary - the initial value bytes for the object
1540
-
** @(OOP3i)@ @initialValueEncoding@ string - defines how the @initialValue@ should be interpreted. Should be @msgpack@ or @json@
1540
+
** @(OOP3g)@ @nonce@ string - the nonce. Must be present on @COUNTER_CREATE@ and @MAP_CREATE@ operations sent to the server. Should not be accessed by the client library if received from the server
1541
+
** @(OOP3h)@ @initialValue@ binary - the initial value bytes for the object. Must be present on @COUNTER_CREATE@ and @MAP_CREATE@ operations sent to the server. Should not be accessed by the client library if received from the server
1542
+
** @(OOP3i)@ @initialValueEncoding@ string - defines how the @initialValue@ should be interpreted by the server. Must be @msgpack@ or @json@. Must be present on @COUNTER_CREATE@ and @MAP_CREATE@ operations sent to the server. Should not be accessed by the client library if received from the server
1541
1543
* @(OOP4)@ The size of the @ObjectOperation@ is calculated as follows:
1542
1544
** @(OOP4a)@ The size is the sum of the sizes of the @mapOp@, @counterOp@, @map@, and @counter@ properties
1543
1545
** @(OOP4b)@ The size of the @mapOp@ property is calculated per "OMO3":#OMO3
1544
1546
** @(OOP4c)@ The size of the @counterOp@ property is calculated per "OCO3":#OCO3
1545
1547
** @(OOP4d)@ The size of the @map@ property is calculated per "OMP4":#OMP4
1546
1548
** @(OOP4e)@ The size of the @counter@ property is calculated per "OCN3":#OCN3
1547
1549
** @(OOP4f)@ The size of a @null@ or omitted property is zero
1550
+
* @(OOP5)@ @ObjectOperation@ encoding:
1551
+
** @(OOP5a)@ When the MessagePack protocol is used:
1552
+
*** @(OOP5a1)@ A binary @ObjectOperation.initialValue@ is encoded as a MessagePack binary type
1553
+
*** @(OOP5a2)@ Set @ObjectOperation.initialValueEncoding@ to @msgpack@
1554
+
** @(OOP5b)@ When the JSON protocol is used:
1555
+
*** @(OOP5b1)@ A binary @ObjectOperation.initialValue@ is Base64-encoded and represented as a JSON string
1556
+
*** @(OOP5b2)@ Set @ObjectOperation.initialValueEncoding@ to @json@
1548
1557
1549
1558
h4. ObjectState
1550
1559
@@ -1623,18 +1632,41 @@ h4. ObjectData
1623
1632
* @(OD1)@ An @ObjectData@ represents a value in an object on a channel
1624
1633
* @(OD2)@ The attributes available in an @ObjectData@ are:
1625
1634
** @(OD2a)@ @objectId@ string - a reference to another object
1626
-
** @(OD2b)@ @encoding@ string - can be set by the client to indicate that value in @string@ or @bytes@ field have an encoding
1627
-
** @(OD2c)@ @boolean@ boolean - a primitive boolean leaf value in the object graph. Only one of the value fields - @boolean@, @bytes@, @number@ or @string@ - can be set at a time
1628
-
** @(OD2d)@ @bytes@ binary - a primitive binary leaf value in the object graph. Only one of the value fields - @boolean@, @bytes@, @number@ or @string@ - can be set at a time
1629
-
** @(OD2e)@ @number@ number - a primitive number leaf value in the object graph. Only one of the value fields - @boolean@, @bytes@, @number@ or @string@ - can be set at a time
1630
-
** @(OD2f)@ @string@ string - a primitive string leaf value in the object graph. Only one of the value fields - @boolean@, @bytes@, @number@ or @string@ - can be set at a time
1635
+
** @(OD2b)@ @encoding@ string - may be set by the client library to indicate that value in @string@ field have an encoding
1636
+
** @(OD2c)@ @boolean@ boolean - a primitive boolean leaf value in the object graph. Only one of the value fields - @boolean@, @bytes@, @number@ or @string@ - must be set at a time
1637
+
** @(OD2d)@ @bytes@ binary | string - a primitive binary leaf value in the object graph. It is sent to and received from the server as a Base64-encoded string when using the JSON protocol. Only one of the value fields - @boolean@, @bytes@, @number@ or @string@ - must be set at a time
1638
+
** @(OD2e)@ @number@ number - a primitive number leaf value in the object graph. Only one of the value fields - @boolean@, @bytes@, @number@ or @string@ - must be set at a time
1639
+
** @(OD2f)@ @string@ string - a primitive string leaf value in the object graph. Only one of the value fields - @boolean@, @bytes@, @number@ or @string@ - must be set at a time
1631
1640
* @(OD3)@ The size of the @ObjectData@ is calculated as follows:
1632
1641
** @(OD3a)@ The size is the sum of the sizes of the @boolean@, @bytes@, @number@, and @string@ properties
1633
1642
** @(OD3b)@ If set, the size of a @boolean@ property is 1
1634
1643
** @(OD3c)@ If set, the size of a @bytes@ property is its size in bytes (of the actual binary, not the base64 representation, regardless of whether the binary protocol is in use)
1635
1644
** @(OD3d)@ If set, the size of a @number@ property is 8
1636
1645
** @(OD3e)@ If set, the size of a @string@ property is its length
1637
1646
** @(OD3f)@ The size of a @null@ or omitted property is zero
1647
+
* @(OD4)@ @ObjectData@ encoding:
1648
+
** @(OD4a)@ Payloads must be booleans, binary, numbers, strings, or JSON-encodable objects or arrays. Any other data type must not be permitted and result in an error with code 40013
1649
+
** @(OD4b)@ @ObjectData.encoding@ must be left unset unless specified otherwise by the payload encoding procedure in "OD4c":#OD4c and "OD4d":#OD4d
1650
+
** @(OD4c)@ When the MessagePack protocol is used:
1651
+
*** @(OD4c1)@ A boolean payload is encoded as a MessagePack boolean type, and the result is set on the @ObjectData.boolean@ attribute
1652
+
*** @(OD4c2)@ A binary payload is encoded as a MessagePack binary type, and the result is set on the @ObjectData.bytes@ attribute
1653
+
*** @(OD4c3)@ A number payload is encoded as a MessagePack float64 type, and the result is set on the @ObjectData.number@ attribute
1654
+
*** @(OD4c4)@ A string payload is encoded as a MessagePack string type, and the result is set on the @ObjectData.string@ attribute
1655
+
*** @(OD4c5)@ A payload consisting of a JSON-encodable object or array is stringified as a JSON object or array, encoded as a MessagePack string type, and the result is set on the @ObjectData.string@ attribute. The @ObjectData.encoding@ attribute is then set to "json"
1656
+
** @(OD4d)@ When the JSON protocol is used:
1657
+
*** @(OD4d1)@ A boolean payload is represented as a JSON boolean and set on the @ObjectData.boolean@ attribute
1658
+
*** @(OD4d2)@ A binary payload is Base64-encoded and represented as a JSON string; the result is set on the @ObjectData.bytes@ attribute
1659
+
*** @(OD4d3)@ A number payload is represented as a JSON number and set on the @ObjectData.number@ attribute
1660
+
*** @(OD4d4)@ A string payload is represented as a JSON string and set on the @ObjectData.string@ attribute
1661
+
*** @(OD4d5)@ A payload consisting of a JSON-encodable object or array is stringified as a JSON object or array, represented as a JSON string and the result is set on the @ObjectData.string@ attribute. The @ObjectData.encoding@ attribute is then set to "json"
1662
+
* @(OD5)@ @ObjectData@ decoding:
1663
+
** @(OD5a)@ When the MessagePack protocol is used:
1664
+
*** @(OD5a1)@ The payloads in @ObjectData.boolean@, @ObjectData.bytes@, @ObjectData.number@, and @ObjectData.string@ are decoded as their corresponding MessagePack types
1665
+
*** @(OD5a2)@ If @ObjectData.encoding@ is set to "json", the @ObjectData.string@ content is decoded by parsing the string as JSON
1666
+
** @(OD5b)@ When the JSON protocol is used:
1667
+
*** @(OD5b1)@ The payloads in @ObjectData.boolean@, @ObjectData.number@, and @ObjectData.string@ are decoded as their corresponding JSON types
1668
+
*** @(OD5b2)@ The @ObjectData.bytes@ payload is Base64-decoded into a binary value
1669
+
*** @(OD5b3)@ If @ObjectData.encoding@ is set to "json", the @ObjectData.string@ content is decoded by parsing the string as JSON
1638
1670
1639
1671
h4. Annotation
1640
1672
@@ -2631,7 +2663,7 @@ class ObjectData // OD*, internal
0 commit comments