diff --git a/textile/objects-features.textile b/textile/objects-features.textile index 4c007d75..d26dfb42 100644 --- a/textile/objects-features.textile +++ b/textile/objects-features.textile @@ -15,7 +15,7 @@ Objects feature enables clients to store shared data as "objects" on a channel. h3(#realtime-objects). RealtimeObjects -* @(RTO1)@ @Objects#getRoot@ function: +* @(RTO1)@ @RealtimeObjects#getRoot@ function: ** @(RTO1a)@ Requires the @OBJECT_SUBSCRIBE@ channel mode to be granted per "RTO2":#RTO2 ** @(RTO1b)@ If the channel is in the @DETACHED@ or @FAILED@ state, the library should throw an @ErrorInfo@ error with @statusCode@ 400 and @code@ 90001 ** @(RTO1c)@ Waits for the objects sync sequence to complete and for "RTO5c":#RTO5c to finish @@ -254,3 +254,29 @@ h3(#livemap). LiveMap *** @(RTLM17a1)@ If @ObjectsMapEntry.tombstone@ is @false@ or omitted, apply the @MAP_SET@ operation to the current key as described in "RTLM7":#RTLM7, passing in @ObjectsMapEntry.data@ and the current key as @ObjectsMapOp@, and @ObjectsMapEntry.timeserial@ as @serial@ *** @(RTLM17a2)@ If @ObjectsMapEntry.tombstone@ is @true@, apply the @MAP_REMOVE@ operation to the current key as described in "RTLM8":#RTLM8, passing in the current key as @ObjectsMapOp@, and @ObjectsMapEntry.timeserial@ as @serial@ ** @(RTLM17b)@ Set the private flag @createOperationIsMerged@ to @true@ + +h2(#idl). Interface Definition + +Describes types for RealtimeObjects. +Types and their properties/methods are public and exposed to users by default. An @internal@ label may be used to indicate that a type or its property/method must not be exposed to users and is intended for internal SDK use only. + +
+class RealtimeObjects: // RTO*
+  getRoot() => io LiveMap // RTO1
+
+class LiveObject: // RTLO*
+  objectId: String // RTLO3a, internal
+  siteTimeserials: Dict // RTLO3b, internal
+  createOperationIsMerged: Boolean // RTLO3c, internal
+  canApplyOperation(ObjectMessage) -> Boolean // RTLO4a, internal
+
+class LiveCounter extends LiveObject: // RTLC*, RTLC1
+  value() -> Number // RTLC5
+
+class LiveMap extends LiveObject: // RTLM*, RTLM1
+  get(key: String) -> (Boolean | Binary | Number | String | JsonArray | JsonObject | LiveCounter | LiveMap)? // RTLM5
+  size() -> Number // RTLM10
+  entries() -> [String, (Boolean | Binary | Number | String | JsonArray | JsonObject | LiveCounter | LiveMap)?][] // RTLM11
+  keys() -> String[] // RTLM12
+  values() -> (Boolean | Binary | Number | String | JsonArray | JsonObject | LiveCounter | LiveMap)?[] // RTLM13
+