Skip to content

Commit 28f8ef5

Browse files
committed
Rename SyncObjectsPool to SyncObjectMessages and clarify its type
1 parent d936ca2 commit 28f8ef5

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

textile/objects-features.textile

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -108,22 +108,23 @@ h3(#realtime-objects). RealtimeObjects
108108
*** @(RTO4b1)@ All objects except the one with id @root@ must be removed from the internal @ObjectsPool@
109109
*** @(RTO4b2)@ The data for the @LiveMap@ with id @root@ must be cleared by setting it to a zero-value per "RTLM4":#RTLM4. Note that the client SDK must not create a new @LiveMap@ instance with id @root@; it must only clear the internal data of the existing @LiveMap@ with id @root@
110110
**** @(RTO4b2a)@ Emit a @LiveMapUpdate@ object for the @LiveMap@ with ID @root@, with @LiveMapUpdate.update@ consisting of entries for the keys that were removed, each set to @removed@
111-
*** @(RTO4b3)@ The @SyncObjectsPool@ list must be cleared
111+
*** @(RTO4b3)@ The @SyncObjectMessages@ list must be cleared
112112
*** @(RTO4b5)@ The @BufferedObjectOperations@ list must be cleared
113113
*** @(RTO4b4)@ Perform the actions for objects sync completion as described in "RTO5c":#RTO5c
114114
* @(RTO5)@ The realtime system reserves the right to initiate an objects sync of the objects on a channel at any point once a channel is attached. A server initiated objects sync provides Ably with a means to send a complete list of objects present on the channel at any point
115115
** @(RTO5d)@ If an @OBJECT_SYNC@ @ProtocolMessage@ is received and "@ObjectMessage.object@":../features#TR4r is null or omitted, the client library should skip processing that @ProtocolMessage@
116116
** @(RTO5a)@ When an @OBJECT_SYNC@ @ProtocolMessage@ is received with a @channel@ attribute matching the channel name, the client library must parse the @channelSerial@ attribute:
117117
*** @(RTO5a1)@ The @channelSerial@ is used as the sync cursor and is a two-part identifier: @<sequence id>:<cursor value>@
118118
*** @(RTO5a2)@ If a new sequence id is sent from Ably, the client library must treat it as the start of a new objects sync sequence, and any previous in-flight sync must be discarded:
119-
**** @(RTO5a2a)@ The @SyncObjectsPool@ list must be cleared
119+
**** @(RTO5a2a)@ The @SyncObjectMessages@ list must be cleared
120120
**** @(RTO5a2b)@ The @BufferedObjectOperations@ list must be cleared
121121
*** @(RTO5a3)@ If the sequence id matches the previously received sequence id, the client library should continue the sync process
122122
*** @(RTO5a4)@ The objects sync sequence for that sequence identifier is considered complete once the cursor is empty; that is when the @channelSerial@ looks like @<sequence id>:@
123123
*** @(RTO5a5)@ An @OBJECT_SYNC@ may also be sent with no @channelSerial@ attribute. In this case, the sync data is entirely contained within the @ProtocolMessage@
124-
** @(RTO5b)@ During the sync sequence, the "@ObjectMessage.object@":../features#TR4r values from incoming @OBJECT_SYNC@ @ProtocolMessages@ must be temporarily stored in the internal @SyncObjectsPool@ list
124+
** @(RTO5b)@ During the sync sequence, the "@ObjectMessage.object@":../features#TR4r values from incoming @OBJECT_SYNC@ @ProtocolMessages@ must be temporarily stored in the internal @SyncObjectMessages@ list
125+
*** @(RTO5b1)@ @SyncObjectMessages@ is a temporary internal array of @ObjectState@ values used during the sync sequence
125126
** @(RTO5c)@ When the objects sync has completed, the client library must perform the following actions in order:
126-
*** @(RTO5c1)@ For each @ObjectState@ in the @SyncObjectsPool@ list:
127+
*** @(RTO5c1)@ For each @ObjectState@ in the @SyncObjectMessages@ list:
127128
**** @(RTO5c1a)@ If an object with @ObjectState.objectId@ exists in the internal @ObjectsPool@:
128129
***** @(RTO5c1a1)@ Replace the internal data for the object as described in "RTLC6":#RTLC6 or "RTLM6":#RTLM6 depending on the object type, passing in current @ObjectState@
129130
***** @(RTO5c1a2)@ Store the @LiveObjectUpdate@ object returned by the operation, along with a reference to the updated object
@@ -137,7 +138,7 @@ h3(#realtime-objects). RealtimeObjects
137138
*** @(RTO5c7)@ For each previously existing object that was updated as a result of "RTO5c1a":#RTO5c1a, emit the corresponding stored @LiveObjectUpdate@ object from "RTO5c1a2":#RTO5c1a2
138139
*** @(RTO5c6)@ @ObjectMessages@ stored in the @BufferedObjectOperations@ list are applied as described in "RTO9":#RTO9
139140
*** @(RTO5c3)@ Clear any stored sync sequence identifiers and cursor values
140-
*** @(RTO5c4)@ The @SyncObjectsPool@ must be cleared
141+
*** @(RTO5c4)@ The @SyncObjectMessages@ list must be cleared
141142
*** @(RTO5c5)@ The @BufferedObjectOperations@ list must be cleared
142143
* @(RTO6)@ Certain object operations may require creating a zero-value object if one does not already exist in the internal @ObjectsPool@ for the given @objectId@. This can be done as follows:
143144
** @(RTO6a)@ If an object with @objectId@ exists in @ObjectsPool@, do not create a new object

0 commit comments

Comments
 (0)