![]() |
Diffusion Apple API 6.11.5
Unified Client Library for iOS, tvOS and OS X / macOS
|
Class Methods | |
(BOOL) | + isErrorRecoverable: |
Properties | |
ObjectType | value |
BOOL | inRecovery |
Instance Methods | |
(BOOL) | - validateWithCompletionHandler:error: |
(BOOL) | - setValue:completionHandler:error: |
(BOOL) | - recover: |
Protected Attributes | |
: NSObject+(instancetype)new | |
+ (BOOL) isErrorRecoverable: | (NSError *) | error |
Indicates if the error is recoverable by the update stream.
error | The error. |
- (BOOL) recover: | (NSError **) | error |
Begins the procedure to attempt recovery from a transient error.
error | If this method returns NO to indicate that an error occurred then this will be populated with the reason for that failure. |
YES
on success; or NO
if an error occurred, in which case *error
will be populated with the failure reason.- (BOOL) setValue: | (ObjectType) | value | |
completionHandler: | (PTDiffusionUpdateStreamHandlerBlock) | completionHandler | |
error: | (NSError **) | error | |
Sets the topic to a specified value.
The first call to this method may fail with a "no such topic" or "incompatible topic" error. Subsequent calls may fail with "invalid update stream". Any call can fail with a "cluster repartition", "session security" or "session closed" error.
If a PTDiffusionUpdateConstraint was provided when creating the update stream, the first call to this method may also fail with an "unsatisified constraint" error.
If the update stream was created with one of the "create update stream" methods, the first call to this method may also fail with an "incompatible existing topic" error and it will not fail with a "no such topic" error.
If this method fails all subsequent calls to 'set' or 'validate' will fail with an "invalid update stream" error.
If the task fails, the completionHandler will be called with an error. Common reasons for failure include:
path
.constraint
is not satisfied by the topic path
.path
is not a valid topic path.MODIFY_TOPIC
or UPDATE_TOPIC
permission for path
.value | The value to set the topic to. |
completionHandler | Block to be called asynchronously on success or failure. If the operation was successful, the error argument passed to the block will be nil and result will be non-nil . The completion handler will be called asynchronously on the main dispatch queue. |
error | If this method returns NO to indicate that an error occurred then this will be populated with the reason for that failure. |
YES
on success; or NO
if an error occurred, in which case *error
will be populated with the failure reason.NSInvalidArgumentException | If either value or completionHandler is nil . |
- (BOOL) validateWithCompletionHandler: | (PTDiffusionUpdateStreamHandlerBlock) | completionHandler | |
error: | (NSError **) | error | |
Validates the update stream.
Update streams are validated lazily when setting the value. This method allows the stream to be validated before a value needs to be set.
If the update stream has not been validated yet, calling this method checks the topic exists, the topic type is correct, the constraint is satisfied and the session has permission to update the topic. Once it has been validated calling this method checks the topic has not been removed, no other stream has been created for the topic, the value of the topic has not been changed by anything else and the session still has permission to update the topic.
This method may fail with an "incompatible existing topic" error if it is the first call to validate, set has not been called and a PTDiffusionTopicSpecification was provided when creating the update stream, otherwise it will never fail with this error.
The first call to this method may fail with a "no such topic" or "incompatible topic" error. Subsequent calls may fail with "invalid update stream". Any call can fail with a "cluster repartition", "session security" or "session closed" error.
If a PTDiffusionUpdateConstraint was provided when creating the update stream, the first call to this method may also fail with an "unsatisified constraint" error.
If the update stream was created with one of the "create update stream" methods, the first call to this method may also fail with an "incompatible existing topic" error and it will not fail with a "no such topic" error.
If this method fails all subsequent calls to 'set' or 'validate' will fail with an "invalid update stream" error.
If the task fails, the completionHandler will be called with an error. Common reasons for failure include:
path
.constraint
is not satisfied by the topic path
.MODIFY_TOPIC
or UPDATE_TOPIC
permission for path
.completionHandler | Block to be called asynchronously on success or failure. If the operation was successful, the error argument passed to the block will be nil and result will be non-nil . The completion handler will be called asynchronously on the main dispatch queue. |
error | If this method returns NO to indicate that an error occurred then this will be populated with the reason for that failure. |
YES
on success; or NO
if an error occurred, in which case *error
will be populated with the failure reason.NSInvalidArgumentException | If completionHandler is `nil`. |
|
readatomicassign |
Indicates if the recoverable update stream is currently in recovery.
|
readnonatomicassign |
The latest value of the topic set using this update stream, from local cache.
This value reflects the last value that has been set, before it is sent to the server.
If the server rejects a set operation, the topic value will not change and this update stream will be invalidated.